タイトルの通りだけど、最初はうまくいかなかったのでメモ書き
順番がよくなかったみたいでしたのでした。
今このコンテナが走ってるとして。
core@localhost ~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 12aed3c97713 centos:lamp /usr/bin/monit -I 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:10022->22/tcp, 0.0.0.0:12812->2812/tcp cocky_mcclintock
走ってる状態でcommitする。ユーザー名/名称とするのが作法とのこと。
core@localhost ~ $ docker commit -m "first" 12aed3c97713 takeken/lamp 4044e6fc6dab67a424e43d86d5c2f0b918df14849115d67236378ab3ca4de5fb
imagesを見ると増えてます。
core@localhost ~ $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE takeken/lamp latest 4044e6fc6dab 13 seconds ago 786.8 MB centos lamp b269921355b3 15 hours ago 781.4 MB
イメージ化されたので、いまのコンテナを止めます。今日の日はさようなら、また逢う日まで。
core@localhost ~ $ docker kill 12aed3c97713 12aed3c97713
ここで問題が勃発した。どうもkillしたらmonitのPIDが残るらしい。
stop > startでもコンテナの中止、再開はできるけども今回の趣旨とはちょっと離れる。
core@localhost ~ $ sudo docker logs d4f3eb389887 monit daemon with PID 1 awakened
動いてくれない・・・。
今回のテーマはイメージ化なので、いったんmonitをリスタートするコンテナを作ってそのコンテナをイメージ化してみるテスト。
core@localhost ~ $ sudo docker run -d -t -p 12812:2812 -p 80:80 -p 10022:22 takeken/lamp /etc/init.d/monit restart 8d52840ef87334f56a21138082e0f9905ec3f3a2e4b4f897724cbb2bf1d4a594
変なやりかたな気はするけど、まあいい。
こんな方法で動くのだろうか。
ログを見るとリスタートはうまくいったらしい。
core@localhost ~ $ docker logs 8d52840ef873 Stopping monit: [FAILED] Starting monit: Starting monit daemon with http interface at [*:2812] [ OK ]
でもって、これで出来上がったイメージからコンテナを作ってみると。
core@localhost ~ $ sudo docker run -d -t -p 12812:2812 -p 80:80 -p 10022:22 takeken/lamp /usr/bin/monit -I 1c41e6fb23e6a564b592432f5570cd37dd82ac892e8c6dcae95fe651a042945c core@localhost ~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1c41e6fb23e6 takeken/lamp:latest /usr/bin/monit -I 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:10022->22/tcp, 0.0.0.0:12812->2812/tcp hopeful_galileo
上手くいったようです。
強引ぐ My wayだ。