Dockerのコンテナを起動したときに、以前したはずの更新や作ったファイルが消えてしまっていた場合があって、確認してみたらなんてことない話だったということ。
Dockerにはrunとstartがある
Dockerではrunとstartというコマンドがあり、runは「イメージからコンテナを作成」、startは「コンテナを起動」となります。
私がファイルが消えていると勘違いしていたのは、実はdocker runをしていたため、毎回イメージからコンテナが作成されていたのでした。だからdocker ps -aとかすると一回だけしかログインしてないようなコンテナがいっぱいありました。つらい…
Dockerの挙動として、run -iでコンテナを作成すると、そのままコンテナを起動してログインしてくれるのと、exitしたらコンテナも自動的に終了するので、runが起動コマンドだと勘違いしていたために起こっていました。
なので、同じようにファイルが消える、という方はrunとstartを間違えていないかを確認してみると救われるかも知れません。
(これをやらかした事例が見当たらなかったのでここに残しておきます…)
startコマンドの使い方
startは、CONTAINER IDまたはNAMESを指定して起動します。
-iをつけることでコンテナを起動と同時にログインできます。
$ docker start -i (CONTAINER IDまたはNAMES)
CONTAINER IDは
$ docker ps -a
でストップされているコンテナも全て表示されるので、そこから確認できます。
NAMESで指定する場合は、docker run --name で指定した文字列で起動できます。
参考サイト
コメント
はい。やらかしていました。ありがとうございます。
コメントどうもです。お役に立てたのでしたら幸いです。
私もだいぶ気がつかなかったもので…