続・Dockerとはなんぞ?
Dockerについて全然調べていなくって、今さら試してみたメモ・続
前回は起動とか停止しとかその辺を実施したのだが
今回またいろいろと試してみる。
環境などは前回のVMをそのまま利用する。
目的
- Dockerがどんなもんなのかを確認する。
メモ
VMでの作業
docker runでコンテナを立ち上げ、apacheがインストールされているか確認。
その後yumコマンドでapacheをインストールし
インストールの確認をする。
[vagrant@localhost ]$ docker run -i -t centos:6.6 /bin/bash [root@00436f484a55 /]# [root@00436f484a55 /]# rpm -qa | grep httpd [root@00436f484a55 /]# yum insatll httpd Loaded plugins: fastestmirror Loaded plugins: fastestmirror Setting up Install Process base | 3.7 kB 00:00 base/primary_db | 4.6 MB 00:01 extras | 3.4 kB 00:00 | | | Complete! [root@00436f484a55 /]# [root@00436f484a55 /]# rpm -qa | grep httpd httpd-tools-2.2.15-39.el6.centos.x86_64 httpd-2.2.15-39.el6.centos.x86_64 [root@00436f484a55 /]# exit exit [vagrant@localhost ]$
実行しているdockerコンテナがあるかどうかの確認
[vagrant@localhost ]$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [vagrant@localhost ]$
終了したdockerコンテナを含めてコンテナ一覧を表示
[vagrant@localhost ~]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 00436f484a55 centos:6.6 "/bin/bash" 24 minutes ago Exited (0) 15 minutes ago sleepy_ritchie da4a862df833 centos:6.6 "/bin/bash" 19 hours ago Exited (0) 19 hours ago cocky_euclid 958fc2a6e01e centos:6.6 "/bin/bash" 19 hours ago Exited (0) 19 hours ago thirsty_bardeen [vagrant@localhost ~]$
apacheをインストールした00436f484a55のコンテナを起動して接続し
apacheがインストールされている状態かどうかを確認
[vagrant@localhost ~]$ docker start 00436f484a55 00436f484a55 [vagrant@localhost ~]$ docker attach 00436f484a55 [root@00436f484a55 /]# [root@00436f484a55 /]# [root@00436f484a55 /]# [root@00436f484a55 /]# rpm -qa | grep httpd httpd-tools-2.2.15-39.el6.centos.x86_64 httpd-2.2.15-39.el6.centos.x86_64 [root@00436f484a55 /]#
おお…。
ではこちらをイメージとして登録。
イメージとして登録し、runの時にこのイメージを指定することで
httpdのインストールされたイメージを起動することが可能。
[vagrant@localhost ~]$ docker commit 00436f484a55 hajimenovic:test 2a6aaf4aca7cdb04042fb5395dbc3a64419a45fd9949a2ab866a9691f4d36052 [vagrant@localhost ~]$ [vagrant@localhost ~]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hajimenovic test 2a6aaf4aca7c 17 seconds ago 280.7 MB centos lamp 1391b4440848 19 hours ago 758 MB centos 6.6 0bc55ae673f7 3 weeks ago 215.8 MB centos centos6 f6808a3e4d9e 3 weeks ago 215.7 MB [vagrant@localhost ~]$
では、このイメージを利用して/bin/bashを起動してログインしてみる。
[vagrant@localhost ~]$ docker run -i -t hajimenovic:test /bin/bash [root@b94f85bb64b8 /]# [root@b94f85bb64b8 /]# [root@b94f85bb64b8 /]# rpm -qa | grep httpd httpd-tools-2.2.15-39.el6.centos.x86_64 httpd-2.2.15-39.el6.centos.x86_64 [root@b94f85bb64b8 /]# [root@b94f85bb64b8 /]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.3 14728 1864 ? Ss 04:29 0:00 /bin/bash root 18 0.0 0.2 16660 1144 ? R+ 04:30 0:00 ps aux [root@b94f85bb64b8 /]# [root@b94f85bb64b8 /]# [root@b94f85bb64b8 /]# exit exit [vagrant@localhost ~]$ 起動→インストールの確認→プロセスの確認→コンテナ終了 はやい…
docker コンテナの破棄
[vagrant@localhost ~]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b94f85bb64b8 hajimenovic:test "/bin/bash" 8 minutes ago Exited (0) 7 minutes ago dreamy_colden 00436f484a55 centos:6.6 "/bin/bash" 24 minutes ago Exited (0) 15 minutes ago sleepy_ritchie da4a862df833 centos:6.6 "/bin/bash" 19 hours ago Exited (0) 19 hours ago cocky_euclid 958fc2a6e01e centos:6.6 "/bin/bash" 19 hours ago Exited (0) 19 hours ago thirsty_bardeen [vagrant@localhost ~]$ [vagrant@localhost ~]$ docker rm 00436f484a55 00436f484a55 [vagrant@localhost ~]$ [vagrant@localhost ~]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b94f85bb64b8 hajimenovic:test "/bin/bash" 23 minutes ago Exited (0) 22 minutes ago dreamy_colden da4a862df833 centos:6.6 "/bin/bash" 21 hours ago Exited (0) 21 hours ago cocky_euclid 958fc2a6e01e centos:6.6 "/bin/bash" 21 hours ago Exited (0) 21 hours ago thirsty_bardeen [vagrant@localhost ~]$ docker ps -a コマンドで一覧を表示して、いらないコンテナをdocker rm CTIDで削除する。 仮に-dでバックグラウンドで動いているコンテナを削除する場合については docker rm -f CTIDとなる
docker イメージの破棄
[vagrant@localhost ~]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hajimenovic test 2a6aaf4aca7c 29 minutes ago 280.7 MB centos lamp 1391b4440848 20 hours ago 758 MB centos 6.6 0bc55ae673f7 3 weeks ago 215.8 MB centos centos6 f6808a3e4d9e 3 weeks ago 215.7 MB [vagrant@localhost ~]$ [vagrant@localhost ~]$ [vagrant@localhost ~]$ docker rmi hajimenovic:test Error response from daemon: Conflict, cannot delete 2a6aaf4aca7c because the container b94f85bb64b8 is using it, use -f to force FATA[0000] Error: failed to remove one or more images [vagrant@localhost ~]$ docker images コマンドでイメージの一覧を表示して docker rmi hajimenovic:testでイメージを消去する。 docker ps -a コマンドでコンテナ一覧を取得したときに 一つでも消去するイメージを使っているコンテナがあるとエラーになる。 強制的に削除する場合はdocker rmi -f で消す。
基本的な動作方法や概念は少しずつわかってきた。
コンテナを起動させて、必要なアプリケーションをインストールして、イメージとして保存。
これを繰り返してコンテナを構築していくというのが基本的な流れとなる。
Dockerfileというテキストファイルにて、あらかじめ定義した環境を構築するようにしたり
他の人の作成したLAMP環境を動かしたり、sshを動作させてログインしたりできるようだけど…。
まだ具体的な使い方がわからないので、これから試してみます。
また根本的な課題なんですが、Dockerを自分の中でどのように使うべきなのか
どういう使い方がベストなのか、というところがまだちょっと霧の中といった感じ。
参考
http://knowledge.sakura.ad.jp/tech/1811/
http://blog.pg1x.com/entry/2014/07/16/235001
http://qiita.com/voluntas/items/bb7c46fdfc709d97f9a5
Docker入門 Immutable Infrastructureを実現する
- 作者: 松原豊,米林正明
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/25
- メディア: Kindle版
- この商品を含むブログ (5件) を見る
【送料無料】【納期1月以上】パナソニック沸騰浄水コーヒーメーカー (5杯分) NC-A56-K ブラッ... |