Dockerコンテナをどのように終了しますか?
次のようなインタラクティブモードでDockerコンテナを実行するとします。
docker run -it ubuntu bash
このようにして、インタラクティブシェルを取得し、コンテナとして実行されているOSにすぐにログインします。
この実行中のコンテナーを終了するには、ctrl + c、ctrl + dを使用するか、ターミナルでexitと入力します。
ここに1つの問題があります。この方法でコンテナを終了すると、コンテナも停止します。
[email protected]:~$ docker run -it ubuntu bash
[email protected]:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
[email protected]:/# exit
exit
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
上記の出力でわかるように、dockerpsコマンドは実行中のコンテナーを表示しません。
Dockerコンテナーを停止せずに終了します(コンテナーをデタッチします)
ここでできることは、 ctrl+pとctrl+qを次々に押してコンテナを切り離すことです 。 Linuxユーザーにとっては奇妙なキーボードショートカットだと思いますが、それが簡単な方法です。
切り離すと、コンテナを終了してもコンテナは実行を継続します。これで、インタラクティブDockerセッションはデーモンモードになります。
docker ps
を使用して確認できます 実行中のコンテナリストに表示するコマンド。
もう一度使いたいときは、容器を付け直してください。
ヒント:可能な限り、コンテナーをデーモンモードで実行します
私は常に次のようにデーモンモードでコンテナを実行することを好みます:
docker run -it -d docker_image_name bash
このようにして、コンテナが起動し、バックグラウンドで実行されます。 iフラグはインタラクティブを意味し、tフラグはttyを表します。つまり、基本的には、bashを実行するインタラクティブなシェルを提供しますが、すぐには利用できません。
実行中のコンテナは次の方法で入力できます:
docker exec -it container_id bash
この簡単なDockerのヒントがお役に立てば幸いです。より多くのDockerのヒントをお楽しみに。
ご質問やご提案がございましたら、コメント欄でお気軽にお問い合わせください。