docker いじってたコンテナをイメージ化してまた使うにゃ

タイトルの通りだけど、最初はうまくいかなかったのでメモ書き

順番がよくなかったみたいでしたのでした。

今このコンテナが走ってるとして。

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だ。

docwp_03

 

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です