DockerにCentOS7のイメージを入れてみた
このところ仕事でjavaのspringでとある企業のカートシステム作ったり、pythonでAPIやらツール作ったり、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を入れてみます。
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
コンテナを終了するときはexitで終わります。
exit
次回はより実用的な方法で実践してみたいです。