CentOSをコンテナで動かしてみる
CentOS Dockerイメージを取得
Docker Hubで公開されているCentOSのDockerイメージを取得します。
> docker image pull centos:7.5.1804
コンテナが取得されたか確認しましょう。
- TAG:コンテナ操作に用いる
- IMAGE ID:Dockerが管理する番号で、このIDを使ってDockerイメージを管理する。
> docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos 7.5.1804 cf49811e3cdb 2 years ago 200MB
Dockerコンテナの起動
コンテナの操作は、コンテナに付与された「タグ」を使います。
- -i :Dockerコンテナ起動時に、標準入力を受け付けるオプション
- -t :仮想端末をコンテナに割り当てる
- --name:作成するコンテナに名前を付ける
> docker container run -i -t --name test01 centos:7.5.1804 /bin/bash
「--name」オプションにtest01を付与したので、コンテナの名前はtest01になります。上記のコマンド実行後は下記のbashコマンドが表示されます。root@に続く文字列「e6a06e7c3b7f」はコンテナIDです。
[root@e6a06e7c3b7f /]#
コンテナとして起動したCentOSの情報を確認
■コンテナのホスト名を確認
続いてbashコマンドでホスト名を確認します。ホスト名は自動的にコンテナIDが設定されます。Dockerコンテナ起動時に明示的に指定することもできます。
[root@e6a06e7c3b7f /]# hostname e6a06e7c3b7f
■コンテナのIPアドレスを確認
IPアドレスを確認して、ホストOSや外部と通信できるか確認しましょう。
- プロキシサーバ経由でインターネットに接続する場合はコンテナ内でもプロキシサーバの設定が必要です。
[root@e6a06e7c3b7f /]# echo "proxy=http://{your proxy server url}" >> /etc/yum.conf
- ipコマンドが含まれるiproute RPMパッケージをインストールします。
[root@e6a06e7c3b7f /]# yum install -y iproute Loaded plugins: fastestmirror, ovl ...... Complete!
■コンテナ上からホストOS側に通信できるか確認
XXXの部分には、ホストOSのIPアドレスを指定します。pingが通り、通信できていることが分かります。
[root@e6a06e7c3b7f /]# ping -c 3 XXX.XXX.XX.XXX PING 192.168.43.1 (192.168.43.1) 56(84) bytes of data. 64 bytes from 192.168.43.1: icmp_seq=1 ttl=37 time=9.38 ms 64 bytes from 192.168.43.1: icmp_seq=2 ttl=37 time=6.97 ms 64 bytes from 192.168.43.1: icmp_seq=3 ttl=37 time=7.31 ms --- 192.168.43.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 6.975/7.892/9.389/1.067 ms
■コンテナ上から外部のアドレスと通信できるか確認
nslookupコマンドで外部アドレス(ここでは任天堂のアドレスで試してみます)を指定し、通信できるかを確認します。
- nslookupコマンドが含まれるbind-utilsパッケージをインストールします。
[root@e6a06e7c3b7f /]# yum install build-urils Loaded plugins: fastestmirror, ovl ...... Complete!
- nslookupコマンドで通信できるか確認します。
[root@e6a06e7c3b7f /]# nslookup www.nintendo.co.jp Server: 192.168.65.5 Address: 192.168.65.5#53 Non-authoritative answer: www.nintendo.co.jp canonical name = www.nintendo.co.jp.edgekey.net. www.nintendo.co.jp.edgekey.net canonical name = e5192.b.akamaiedge.net. Name: e5192.b.akamaiedge.net Address: 104.118.65.111 www.nintendo.co.jp.edgekey.net canonical name = e5192.b.akamaiedge.net.