仕事でproxy環境下にdocker,docker-compose環境を構築することがあったのでその時のメモです。環境はCentOS7を使ってます。
OSインストール直後のまっさらな状態から始めます
CentOSのプロキシの設定
ここを参考に以下を設定
$ vi /etc/profile
以下を最下行に書き込む
PROXY="http://<user>:<pass>@<proxy_host>:<proxy_port>" # proxyサーバのドメインとポートを指定
export http_proxy=$PROXY
export HTTP_PROXY=$PROXY
export https_proxy=$PROXY
export HTTPS_PROXY=$PROXY
export NO_PROXY=localhost
export no_proxy=localhost
# source /etc/profile
とりあえずyum updateしてproxyが通るかどうか確かめる
# yum update
dockerのインストール
公式サイトを見て、その手順に従う
https://docs.docker.com/install/linux/docker-ce/centos/
以下を順に実行
# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
# yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# yum install docker-ce
インストールされたかどうか確認
$ docker -v
Docker version 17.12.1-ce, build 7390fc6
dockerのプロキシ設定
ここを参考に設定
# mkdir /etc/systemd/system/docker.service.d
# vim /etc/systemd/system/docker.service.d/http-proxy.conf
以下を追記する
[Service]
Environment="HTTP_PROXY=http://<user>:<pass>@<proxy_host>:<proxy_port>" "HTTPS_PROXY=http://<user>:<pass>@<proxy_host>:<proxy_port>" "NO_PROXY=localhost"
以下を実行して適用
$ systemctl daemon-reload
$ systemctl restart docker
insecure resistryの設定
Dockerで社内のプライベートリポジトリを使う場合、そのリポジトリが暗号化されていないhttp通信の場合は、insecure registyにそのリポジトリを登録しないと、コンテナイメージをpullすることができないので、公式サイトを参考に以下を設定する
# vim /etc/docker/daemon.json
以下を追記
{
"insecure-registries" : ["<private_docker_registry_host>:<port>"]
}
以下を実行して適用
$ service docker restart
dockerの自動起動設定
CentOS7の場合はsystemctlでデーモンをコントロールしているので、以下を実行すると、システム起動時に自動的にDockerが立ち上がるようになる
systemctl enable docker.service
docker-composeのインストール
公式サイトの手順に従ってインストールする https://docs.docker.com/compose/install/#install-compose
以下を順に実行
curlのプロキシ設定。参考
$ vim ~/.curlrc
以下を追記
proxy-user = "<user>:<pass>"
proxy = "http://<proxy_host>:<proxy_port>"
docker-composeの実行ファイルをインストール。
バージョンはここから最新のものに書き換えること
sudo curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
ちゃんとインストールされたか確認
$ docker-compose --version
docker-compose version 1.19.0, build 9e633ef
docker swarm modeの起動
docker swarmを使う場合は、以下を実行してswarm modeをonにする。(今回はシングルホスト環境でswarmを動かす)
# docker swarm init
以上