2017-01-09 3 views
2

は私が
container-idを使用してコンテナを再起動する方法は?

docker run ubuntu /bin/bash -c "echo 'cool content' > /tmp/cool-file" 

は、今私は、コンテナが

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS      PORTS    NAMES 
9e5017aef3f9  ubuntu    "/bin/bash -c 'echo '" 38 seconds ago  Exited (0) 36 seconds ago      elegant_euler 

質問を終了した参照コマンドを使用してコンテナを作成しました:どのように私は再起動することができますし、使用して、このコンテナのために対話モードに入るそのコンテナID
docker run -it <image_name>はイメージ名であり、コンテナIDではないため使用できません。 私はドッカーの添付を使用してみましたが、これはコンテナを実行するためにのみ動作すると思います。 私はこのコンテナをまだコミットしたくないのですが、コンテナIDを使用してこのコンテナの対話モードに戻るにはどうすればいいですか?
編集:docker start {container-id}を使用して他の容器に入ってからdocker attach {container-id}を実行することができます。私は、この動作につながるコンテナを作成する方法に特有の何かがあるかどうか疑問に思います。私はちょうどドッカーで始まっているので、私はいくつかの基本的なビットが欠けている場合、正しい方向に私を指示します。再起動し、対話型端末に入るにはうってつけの両方

docker restart <container_id> 

docker exec -it <container_id> bash 

作品:Docker start command

docker stop {containerId} && doicker start -i {containerId} 
+0

ベストソリューションではありませんが、[portainer](http://portainer.io)を使用してドッキング画像を管理しています。 –

+0

この文書を確認してください - https://docs.docker.com/engine/tutorials/dockerizing/ – Rao

+0

[既に存在するドッカーのコンテナでコマンドを実行するにはどうすればいいですか?](http://stackoverflow.com/questions/) 26153686 /既存のドッキング・コンテナの操作方法) – Matt

答えて

2

コンテナがコマンドを完了すると、コンテナが終了します。だから、コンテナが

docker run ubuntu /bin/bash -c "echo 'cool content' > /tmp/cool-file" 

を始めとすぐにコマンドechoが完了すると終了します。この場合、そのコンテナを再起動する意味がありません。

デタッチモードで新しいコンテナを実行すると、そのコンテナをライブ状態に保ち、2度目にアタッチすることができます。あなたのケースであなたが/bin/bashのようなコマンドを実行しているデタッチモードでイメージから新しいコンテナを実行する必要があり

ので、あなたは、エコーを実行することができますし、コンテナが生かされます

docker run -d -ti ubuntu /bin/bash 
docker exec -ti <containerId> /bin/bash -c "echo 'cool content' > /tmp/cool-file" 

それを添付し、あなたはもっと多くのコマンドを実行することができます。 ドッキングウィンドウの幹部-ti/binに/ bashの-c「猫を/ tmp /クール・ファイル」

たり、コンテナを「添付」するために、コマンド・プロンプトとそれで動作するように新しい/ binに/ bashの実行

docker exec -ti <containerId> /bin/bash 
[email protected]<containerId>:/# cat /tmp/cool-file 
cool content 
あなたが正常に再起動/起動/このコンテナを停止することができます

docker stop <containerId> && docker start <containerId> 

または

docker restart <containerId> 

思い出させますコンテナを再起動すると、元のコマンドが再び実行されます。それは、コマンド/ binに/ bashを使用して実行コンテナを再起動し、再び/bin/bash -c "cat /tmp/cool-file"

を実行します(ただし、dont't)再起動するときに、あなたのユースケースのコンテナを再起動することができたい場合は、再度同じコマンドを実行します。

通常、既存のコンテナを再起動するときに、コマンドをRUNに変更することはできません。それを行うには、How to start a stopped docker container with a different commandで示唆されるようないくつかのトリックを試すことができます。

0

チェックは私は自分自身を試してみました。

+0

ドッキング開始コマンドに-tフラグはありません。また、より正確に私の質問に編集を追加しました。 – AnukuL

関連する問題