DockerにCentOS7のイメージを入れてみた

このところ仕事でjavaのspringでとある企業のカートシステム作ったり、pythonAPIやらツール作ったり、phpでできているサイトの修正をしたり、はたまたある人からhaskell教のすばらしさを教えられ入信するなどぶっ飛んだことばかりしていて肝心のDokerが全然できていなかったので、今日は朝からCentOSに入れたDockerにDockerイメージを入れて遊んでみたいと思います。

 

Dockerのインストール方法は、以前の記事を参照してください。

まずはDockerHubよりCentOSのイメージをpullします。git感覚ですね。

    docker pull centos:7

 ダウンロードしたらdocker imagesで入っているイメージを確認します。

    docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              7                   2d194b392dd1        4 days ago          195MB
    hello-world         latest              f2a91732366c        3 months ago        1.85kB

 結果には今落としたcentosのイメージと以前Dockerインストール時に落としたhello-worldが表示されています。

ではcentosを起動しましょう。

    docker run centos:7

 起動しているか確認

    docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES
6b8c087cbd0f        centos:7            "/bin/bash"         About a minute ago   Exited (0) About a minute ago                       festive_goldberg
a5be73c9d526        hello-world         "/hello"            3 weeks ago          Exited (0) 3 weeks ago                              unruffled_franklin

 statusをみると”Exited (0) About a minute ago”と出ています。どうやら落ちているようです。/bin/bashにアクセスできていないようなので起動引数を追加して再度起動。

    docker run -i -t -h kodama centos:7
    [root@kodama ~]#

 コマンドプロンプトが変わりました。コンテナが起動出来たようです。

ちなっみに-hはコンテナにホスト名を設定するときに使います。今回は「kodama」と付けました。(うちのPC名はすべて新幹線の名前からとっているので)

コンテナの情報はdocker inspectで確認できます。

    docker inspect hungry_agnesi

「hungry_agnesi」はコンテナ名です。先ほどのdocker imagesでNAME欄を確認したうち実行してください。結果が長いので割愛しますがjsonで表示されます。ここではhost名とかIPアドレスなどが表示されるはずです。

 

 次にコンテナ内でコマンドを実行してみます。今回はyum updateで試します。

    yum update

結果は以下の通り

    Loaded plugins: fastestmirror, ovl
base                                                                                                                                  | 3.6 kB  00:00:00
extras                                                                                                                                | 3.4 kB  00:00:00
updates                                                                                                                               | 3.4 kB  00:00:00
(1/4): extras/7/x86_64/primary_db                                                                                                     | 181 kB  00:00:00
(2/4): base/7/x86_64/group_gz                                                                                                         | 156 kB  00:00:01
(3/4): updates/7/x86_64/primary_db                                                                                                    | 6.9 MB  00:00:30
(4/4): base/7/x86_64/primary_db                                                                                                       | 5.7 MB  00:00:33
Determining fastest mirrors
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package libgcc.x86_64 0:4.8.5-16.el7_4.1 will be updated
---> Package libgcc.x86_64 0:4.8.5-16.el7_4.2 will be an update
---> Package libstdc++.x86_64 0:4.8.5-16.el7_4.1 will be updated
---> Package libstdc++.x86_64 0:4.8.5-16.el7_4.2 will be an update
---> Package systemd.x86_64 0:219-42.el7_4.7 will be updated
---> Package systemd.x86_64 0:219-42.el7_4.10 will be an update
---> Package systemd-libs.x86_64 0:219-42.el7_4.7 will be updated
---> Package systemd-libs.x86_64 0:219-42.el7_4.10 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================
 Package                                Arch                             Version                                     Repository                         Size
=============================================================================================================================================================
Updating:
 libgcc                                 x86_64                           4.8.5-16.el7_4.2                            updates                            98 k
 systemd                                x86_64                           219-42.el7_4.10                             updates                           5.2 M
 systemd-libs                           x86_64                           219-42.el7_4.10                             updates                           378 k

Transaction Summary
=============================================================================================================================================================
Upgrade  4 Packages

Total download size: 5.9 M
Is this ok [y/d/N]: 

ちゃんとyumも動くようです。

エディタがviしかないのでemacsも入れます。

    yum install emacs

インストール後emacsと入力するとemacsが起動出来ました。

次にapacheを入れてみます。

同じようにyumapacheをインストール

    yum install httpd
cp -p /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.ORG
sed -i -e 's/\#ServerName www.example.com:80/ServerName kodama/g' /etc/httpd/conf/httpd.conf

 今回は動作確認だけにしますのでhttpdコマンドを実行してサーバを起動します。

    httpd -k start

 

f:id:gamsj2015:20180310172651p:plain

 

コンテナを終了するときはexitで終わります。

    exit

次回はより実用的な方法で実践してみたいです。