はじめに
どうも、べちおです。
山奥の大学で学生エンジニアをしています。
よろしくお願いいたします
今回の内容
今回はUbuntuでDockerを動かす方法を紹介したいと思います。(二番煎じ以上だけれど。。。)
以下に参考にした記事を掲載します。
また、以下の記事を参考に、UbuntuにDocker環境を立てました。
しかし、ここで注意点です!
上記の方の方法ではうまくいかない事例があることがわかりました。(私なんですがね...)
上手くいかない原因、それは自身の環境が・・・
Proxy環境なのかそうではないのか
というところです。
ここを間違えてしまうと、Dockerコマンドを使用できても、イメージをpullできない(通信ができない・イメージをダウンロードできない)状態になってしまいます。(実際に私がそうでした)
同じような現象に悩まされている方もいらっしゃるかもしれないので、解決した方法を共有します!
実装環境
- Ubuntu 18.04.6LTS
- メモリ 18GiB (17.6GiB)
- プロセッサ Intel core i7 CPU 920 @2.67GHz*8
- グラフィック NVIDIA GeForce GTX 1650/PCle/SSE2
- Docker 20.10.17
結論
上記のリンクで私が詰まった箇所は「DockerにProxyを設定する」、というところです。
また一番大切なところは、
自信の環境がProxyサーバを経由する必要がある場合はDockerにProxyの設定が必要
ということです。直接外部のネットワークにアクセスすることが可能な場合には、Proxy設定は不要とのことでした。(私は完全にそこを見落とししていました...)
改善方法
まず、Dockerを導入した段階で自身が
- Proxyサーバを経由する必要があるのか(外部ネットワークへのアクセスが必要なのか)
- Proxyサーバを経由する必要がないのか(直接外部ネットワークにアクセスすることが可能なのか)
を簡単に確認する方法を紹介します。とりあえず以下のコマンドを入力してみましょう。お馴染みのHello-Worldです。
$ docker run hello-world
実行に成功した場合は以下のようなログが出力されます。
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
実行に失敗した場合はエラーが出るかと思います。その際はProxy設定が必要だったのかそうではないのかが判断つくと思います。
Proxy設定をおこなってエラーが出てしまった場合は、以下のファイルの中を編集すると解決するかと思います。具体的には以下の2文をコメントアウトします。
$ sudo vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
#Environment="HTTP_PROXY=http://proxy.example.com:8080/"
#Environment="HTTPS_PROXY=http://proxy.example.com:8080/"
上記の変更を適用します。
$ sudo systemctl daemon-reload
Dockerを再起動します。
$ sudo systemctl restart docker
ここで再度$ docker run hello-world
を実行することでイメージをpullすることができたかと思います。
まとめ
私自身DockerもUbuntuもほぼ初めましての状態だったこともあり、知識不足のためこのようなことが起きてしまいました。
これからどんどんDocker・Ubuntuを触っていきますので、情報を共有していきたいと思います。
今後ともよろしくお願いいたします。