考慮してください:
docker run -it centos /bin/bash
Ctrl+ を押しDて終了します。
このコンテナを引き続き実行したいのですが、実行できないことがわかりました。
唯一の方法は
docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash
私は正しいですか?より良い方法はありますか?(私はdocker 0.8.0を使用しています。)
考慮してください:
docker run -it centos /bin/bash
Ctrl+ を押しDて終了します。
このコンテナを引き続き実行したいのですが、実行できないことがわかりました。
唯一の方法は
docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash
私は正しいですか?より良い方法はありますか?(私はdocker 0.8.0を使用しています。)
回答:
既存のコンテナは、終了して変更がまだ残っている後に再起動できます。
docker start `docker ps -q -l` # restart it in the background
docker attach `docker ps -q -l` # reattach the terminal & stdin
docker start `docker ps -q -l` && docker attach `docker ps -q -l`
docker start -i $(docker ps -q -l)
。;-)ネーミングは、選択されるコンテナをより適切に制御するのに役立ちます。-l
最後に、[OK]を...得る
`docker ps -q -l`
ビットは拡張です。最後に作成された(-l)DockerコンテナーのIDに置き換えられます。-qは通常、によって出力される他の情報(idの横にある)を抑制し `docker ps`
ます。---- 注: バックティックは引用符ではなく、非常に特別な意味を持っています。あなたはバッククォートの間で入力すべてがメインコマンドの前にシェルによって評価(実行)される- unix.stackexchange.com/questions/27428/...
Created...
がで起動できない状態になっているのを見つけましたdocker start ...
。ただし、次を使用して再起動できますdocker restart ...
-l
「最新」のDockerのみを取得します。あなたが私のようなdocker ps -a
もので、起動する必要があるものが複数ある場合は、上記のコマンドをに変更することで、それらの「すべて」(-a)を再起動できますdocker start `docker ps -q -a`
。-q
単に「静か」にします(出力ログではありません)。
使用する:
docker start $(docker ps -a -q --filter "status=exited")
これにより、終了状態にあるすべてのコンテナーが開始されます。
docker exec -it <container-id> /bin/bash
これは特定のコンテナに接続します。
docker exec -it <container id> /bin/bash
(または単にbash)。
複数の覚えやすいコマンドで実行する場合:
docker ps -a
docker start -i <name/id>
この-i
フラグは、コンテナーの標準入力に接続するようにdockerに指示します。
コンテナーが接続する対話型シェルで開始されていない場合は、これを実行してシェルを実行する必要があります。
docker start <name/id>
docker exec -it <name/id> /bin/sh
/bin/sh
高山ベースのイメージで通常利用できるシェルです。
Error response from daemon: Container <id> is not running
既知の名前のDockerコンテナーを1つだけ続行する場合:
docker start `docker ps -a -q --filter "name=elas"`
docker start <name>
、<name>がコンテナーの名前である場所で実行できます。少なくともdocker v19.03.8を使用
次の手順を実行します:
名前で
sudo docker start bob_the_container
またはIDによって
sudo docker start aa3f365f0f4e
これは停止したコンテナーを再起動します。-iを使用してコンテナーのSTDINをアタッチするか、-iの代わりにコンテナーセッションにアタッチできます(-itを使用して実行する場合)
sudo docker attach bob_the_container
docker start `docker ps -a | awk '{print $1}'`
これにより、「終了」状態のすべてのコンテナが起動します