内容

概要

前提条件

要件

使用するコンポーネント

背景説明

問題

解決方法

概要

このドキュメントでは、プロキシサーバの背後にあるDockerコンテナがインターネットにアクセスできない場合のトラブルシューティング方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- Linux インターフェイス

- 仮想マシン環境

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアのバージョンに基づいています。

- CloudCenter バージョン 4.x

- CloudCenter Orchestrator(CCO)

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。

背景説明

インターネットへのアクセスにプロキシが必要な場合は、dockerコンテナを設定する必要があります。

問題

以下は、Docker コンテナがインターネットに到達できない問題を再現するための手順です。

rootユーザがCCOでcore_installer.binを実行しようとすると、次のように表示されます。

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

次のエラーが表示されます。

解決方法

ステップ1：次の引数を指定してcore_installer.binファイルを実行し、コアフォルダを作成します。

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

ステップ 2：core フォルダに移動します。

[root@localhost]# cd core

ステップ3：コアフォルダから、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：これらのコマンドを使用して、最新のイメージにワーカーをビルドします。

[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を追加します。これにより、dockerがインストールされたことがcore_installer.binに通知されます。

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]