会社PCでDocker Desktopを使う場合、たいていの場合は社内Proxyに阻まれて外部と通信できなかったりします。
社内Proxyを使ってない会社の場合は問題ないのですが、私の会社は社内Proxy環境下にあるため、外部と通信するためのProxy指定方法を調べました。
目次
【Docker Desktop】プロキシ環境下で外部と通信する方法
外部と通信するのは2パターンあります。
- DockerコマンドのpullやrunでDocker hubからイメージをダウンロードする場合
- コンテナ内からapt-getなどをする場合
それぞれの設定方法は以下の通りです。
Dockerコマンドのpullやrunが通るようにプロキシ設定を行う方法
Docker pullなどのコマンドが通らない場合、Docker Desktop本体にプロキシの設定をしてあげる必要があります。
Docker DesktopのSetting画面から指定が可能なので、タスクバーにあるDockerアイコンを右クリック⇒「Settings」を選択します。
「Resources」の「PROXIES」でプロキシを指定すればOKです。
「Manual Proxy configration」を有効にして、httpの(必要ならhttpsも)プロキシ設定を入力しましょう。
http://<ユーザー名>:<パスワード>@<プロキシサーバー>:<ポート番号>
入力したら、「Apply & Restart」でDocker Desktopを再起動すれば完了です。
再起動後は、docker pullコマンドなどが正常に動作するようになるはずです。
コンテナ内からapt-getなどが通るようにプロキシ設定を行う方法
コンテナ内から外部と通信する場合のプロキシ設定は、docker runの時の引数で指定できます。
docker run -e http_proxy=http://<ユーザー名>:<パスワード>@<プロキシサーバー>:<ポート番号> -it ubuntu
「-e」はコンテナを起動する際、OSに変数名を渡すものです。
「-e http_proxy=xxx」で、http_proxy=xxxの環境変数がOSに設定されたことになります。
これで、ターミナル上からapt-getなどで外部と通信することができるようになりました。
以上の2通りの指定をしておけば、とりあえずプロキシに阻まれて通信できないといった問題は回避できると思います。