Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
29
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

proxy環境下でCentOS7にdockerを構築するときのメモ

仕事で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のインストール

公式サイトを見て、その手順に従う

以下を順に実行

# 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

以下を追記する

/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

以下を追記

/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

以下を追記

~/.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

以上

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
29
Help us understand the problem. What are the problem?