Docker

Dockerコンテナでpingコマンドを使いたい【トラブルシュート対応】

Docker

Dockerイメージには基本的には必要なサービスだけがインストールされており、トラブルシュートなどで使う pingやnslookup、さらにifconfigなどのネットワーク系のパッケージはインストールされてません

それはそれで当然で非常に理にかなっていて良いのですが、トラブルシュートをする時は少し困る場面があります。

そこで、今回はコンテナにpingやnslookup、ifconfigコマンドが使えるようにするために、ネットワーク関連のパッケージをインストールしてみました。そのメモとなります。

インストール方法(Ubuntuベース)

まずはコンテナへ接続します。例としてgitlab_gitlab_1のコンテナに接続してます。当然pingがインストールされていないので「 command not found」となります。

bash-3.2$ docker exec -it gitlab_gitlab_1 /bin/bash

root@gitlab:/# cat /etc/issue
Ubuntu 16.04.6 LTS \n \l

root@gitlab:# ping 
bash: ping: command not found

root@gitlab:# ifconfig
bash: ifconfig: command not found

では、実際にapt-getコマンドから関連パッケージをインストールしています。

今回はiputils-ping、net-tools、dnsutilsのパッケージをインストールしました。

root@gitlab:/# apt-get update
root@gitlab:/# apt-get install iputils-ping net-tools dnsutils

注意:apt-get updateの事前実行が必要です

いきなりapt-get installしようとすると依存関係の問題でエラーになります。事前にapt-et updateを実行してください。

root@gitlab:/# apt-get install iputils-ping
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package iputils-ping

確認

インストールが完了したら、実際にpingやipcofigが使えるようになったことを確認します。

これでトラブルシュートを行うことができるようになりますね。ちなみにトラブル原因などが分かった後はそのまま使うのではなく、一旦コンテナを作り直すことを忘れずに。

root@gitlab:/# ping runner
PING runner (172.22.0.2) 56(84) bytes of data.
64 bytes from gitlab_runner_1.gitlab_default (172.22.0.2): icmp_seq=1 ttl=64 time=0.311 m
(略)

---------------------------
root@gitlab:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:ac:16:00:03  
          inet addr:172.22.0.3  Bcast:172.22.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
(略)

---------------------------
root@gitlab:/# nslookup runner
Server:		127.0.0.11
Address:	127.0.0.11#53

Non-authoritative answer:
Name:	runner
Address: 172.22.0.2

Dockerのオススメ勉強方法

私がオススメするDockerの効果的な学習方法は「Udemy(ユーデミー)」によるビデオ学習です。

「Udemy」は、オンライン学習の提供サイトです。学びたい人は多くある講座の中から受講したいコースを選択することができ、動画で学べるのが特徴です。

私のDockerに関するオススメコースは以下となります。

Dockerの基本的な使い方から現場で役立つ応用的な使い方まで学習することができ、プログラミングの知識がない人でも,問題なく受講できます。

米国AI開発者がゼロから教えるDocker講座

Udemyでは頻繁にセールが開催されているので、セールのタイミングで購入すれば90%OFFになる講座もあるため、セールが開催されてからの購入をオススメします!

今回は以上となります。

コメント

タイトルとURLをコピーしました