読者です 読者をやめる 読者になる 読者になる

haruka's Desk

技術系の備忘録

Proxy下のOpenSUSEでDockerを使う

Proxy下のOpenSUSEでDockerを使う

研究室のネットワーク環境下でDockerを用いるのに手こずったので、残しておきます。

Dockerとは

Docker入門を参考にしてみてください。
簡単に言うと、仮想環境をイメージとして残したり、コピーしたりが可能なオープンソースのソフトウェアです。
今回は、WEBアプリケーションの開発ローカルで行い、Dockerでイメージを作成して、サーバーにそのイメージをpullするために、使いたいと考えました。

環境

PC: ASUS Taichi 21
OS: OpenSUSE LEAP 42.1 64bit
Proxy通し済

コマンド
$ export HTTP_PROXY="http://proxy.sample.com:8080"
$ export HTTPS_PROXY="http://proxy.sample.com:8080"
$ export FTP_PROXY="http://proxy.sample.com:8080"
#確認
$ echo $HTTP_PROXY

Dockerのインストール

下記のコマンドでインストールされるはずです(おそらく他のLinuxでもapt-get, yumで)。

$ sudo zypper install docker

次に、daemonの立ち上げを下記のコマンドで行います。

$ sudo systemctl start docker

(ヴァージョンの)確認します。

$ docker -v

ここでイメージをpullしたいのですが、私の場合できませんでした。

$ sudo docker pull centos:7
## もしくは、 $ sudo -E docker pull centos:7
## -E は環境変数の適応

DockerのProxy設定

まず、docker.serviceをコピーします。

$sudo cp /usr/lib/systemd/system/docker.service /etc/systemd/system/

コピーしたdocker.serviceの[Service]の下、ExecStartコマンドの直前にProxyの設定を下記のように追記します。

$sudo vim /etc/systemd/system/docker.service
docker.service
Environment="HTTP_PROXY=http://user:pwd@proxy.example.com:8080"

設定を再読込とDockerの再起動をします。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

ここで、私の場合は少しだけdaemonの起動ができなくなったので、再起動しました。その後に、下記コマンドを実行しました。

$ sudo systemctl daemon-reload
$ sudo systemctl start docker

pullします。

$ sudo docker pull centos:7
## もしくは、 $ sudo -E docker pull centos:7
## -E は環境変数の適応

実行します。

sudo docker run -it centos:7

終了です。