目錄

簡介

必要條件

需求

採用元件

背景資訊

問題

解決方案

簡介

本文說明如何對代理伺服器後的docker容器進行故障排除，使其無法訪問Internet。

必要條件

需求

思科建議您瞭解以下主題：

- Linux介面

- 虛擬機器環境

採用元件

本檔案中的資訊是根據以下軟體版本：

- CloudCenter 4.x版

- CloudCenter Orchestrator(CCO)

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

背景資訊

如果您的企業需要代理才能訪問Internet，則必須配置docker容器。

問題

這是當docker容器無法訪問Internet時重現問題的過程。

根使用者嘗試在CCO上運行core_installer.bin時：

[root@localhost tmp]# ./core_installer.bin centos7 vmware cco

將顯示以下錯誤：

解決方案

步驟1.使用這些引數運行core_installer.bin檔案以建立core資料夾。

[root@localhost]# /core_installer.bin --noexec --keep

步驟2.導航到core資料夾。

[root@localhost]# cd core

步驟3.從core資料夾中，運行setup.sh指令碼以安裝docker。

[root@localhost core]# /setup.sh centos7 vmware docker

指令碼失敗，錯誤為「Failed in Docker」。

步驟4.修改Dockerfile。

[root@localhost core]# vi docker/cliqr-container-worker/Dockerfile

步驟5.在Dockerfile的ENV部分中新增代理伺服器資訊。

ENV JAVA_VERSION 1.7.0

ENV http_proxy http://proxy.company.com

ENV https_proxy https://proxy.company.com

附註：將proxy.company.com替換為實際的代理伺服器地址。

步驟6.為docker服務建立systemd下拉目錄。

[root@localhost core]#  mkdir /etc/systemd/system/docker.service.d

步驟7.建立docker http-proxy.conf檔案。

[root@localhost core]# vi /etc/systemd/system/docker.service.d/http-proxy.conf

步驟8.新增代理伺服器資訊。

[Service]

Environment="HTTP_PROXY=http://proxy.company.com"

Environment="HTTPS_PROXY=https://proxy.company.com"

Environment="NO_PROXY=localhost,127.0.0.1"

步驟9.如果您有需要聯絡的內部Docker登錄檔，而無需代理，請將它們新增到NO_PROXY環境變數中：

Environment="HTTP_PROXY=http://proxy.company.com"

Environment="HTTPS_PROXY=https://proxy.company.com"

Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.company.com"

附註：將proxy.company.com替換為實際的代理伺服器地址。

步驟10.儲存配置檔案並重新載入docker服務。

[root@localhost]# systemctl daemon-reload

[root@localhost]# systemctl restart docker

步驟11.藉助這些命令，將worker構建到最新映像。

[root@localhost]# cd /tmp/core/docker/cliqr-container-worker

[root@localhost cliqr-container-worker]# docker build -t 'cliqr/worker:latest' .

步驟12.重新啟動docker服務。

[root@localhost]# systemctl restart docker

步驟13.測試是否已設定docker容器。

[root@localhost]# docker search coreos

[root@localhost yum]# docker search coreos

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

bhuisgen/docker-zabbix-coreos Zabbix agent for CoreOS server 11 [OK]

radial/coreos-pxe Spoke container for running dnsmasq as PXE... 7 [OK]

olalond3/coreos-bitcoind coreos bitcoind 4 [OK]

geowa4/coreos-toolbox Replace the default toolbox image on CoreO... 2 [OK]

million12/linode-coreos-api Deploy CoreOS on Linode. 2 [OK]

pablocouto/coreos-sshguard sshguard for CoreOS 1 [OK]

christianbladescb/newrelic-coreos Run newrelic's sysmond in a container on C... 1 [OK]

allen13/coreos-ansible-toolbox Control CoreOS boxes with ansible using a ... 1 [OK]

shift/coreos-ubuntu-etcd 1 [OK]

majidaldoiongithub/coreos-nvidia run privileged to install nvidia and cuda ... 0 [OK]

skopciewski/coreos-pypy Wrapper for installing pypy on coreos server 0 [OK]

yummly/consul-coreos Consul using etcd on CoreOS for bootstrap.... 0 [OK]

shift/coreos-ubuntu-confd 0 [OK]

jwaldrip/vault-coreos Vault for CoreOS 0 [OK]

zumbrunnen/coreos-gce Google Cloud SDK for CoreOS. Useful for dy... 0 [OK]

cheungpat/coreos-toolbox CoreOS toolbox based on alpine linux 0 [OK]

bretif/coreos-marathon Launch bootstrap script to create mesos/ma... 0 [OK]

openai/coreos-bootstrap Tools for bootstrapping a coreos node. 0 [OK]

docku/pxe-coreos 0 [OK]

kciepluc/coreos-ipxe container with dnsmasq / ipxe environment ... 0 [OK]

kciepluc/coreos-ipxeweb Webserver for bootstrapping CoreOS through... 0 [OK]

evergreenitco/fluentd-kubernetes-coreos-secure Fluentd capture logs containers on Kuberne... 0 [OK]

steigr/coreos CoreOS in Docker 0 [OK]

brandfolder/vault-coreos Vault for CoreOS with an etcd backend. 0 [OK]

kciepluc/coreos-toolbox custom toolbox container for CoreOS 0 [OK]

[root@localhost yum]#

配置docker容器後，需要從core_installer.bin繼續安裝（如果要安裝CCO）。

步驟14.修改cliqr_modules.conf。

[root@localhost core]#  vi /etc/cliqr_modules.conf

步驟15.在檔案的結尾新增docker。這會通知core_installer.bin已安裝docker。

sysupdate

gateway

ntp

jdk8

tomcat8

gwtomcatapr

gwmongodb

docker

步驟16.重新運行core_installer.bin以完成安裝。

[root@localhost tmp]# ./core_installer.bin centos7 vmware cco

Verifying archive integrity... All good.

Uncompressing Core Installer V 4.8.0.1.......................................................................................................................................................................................................................................................................................................................................................................................................................................

Installing Module: sysupdate

Module already installed: sysupdate

Installing Module: gateway

Module already installed: gateway

Installing Module: ntp

Module already installed: ntp

Installing Module: jdk8

Module already installed: jdk8

Installing Module: tomcat8

Module already installed: tomcat8

Installing Module: gwtomcatapr

Module already installed: gwtomcatapr

Installing Module: gwmongodb

Module already installed: gwmongodb

Installing Module: docker

Module already installed: docker

Installing Module: usermod

Installing Module: security

[root@localhost tmp]