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初心者向けの最初に購入すべき書籍は「さわって学ぶクラウドインフラ docker基礎からのコンテナ構築です。

さわって学ぶクラウドインフラ docker基礎からのコンテナ構築

本書ではDockerの基本的な概念などの座学ももちろんありますが、実際に、Dockerのインストール方法やWebサーバーをコンテナで構築するハンズオンを通じて学習することができるため、特に初心者の方はは分かりやすい内容となっています。

今回は以上となります。

コメント

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