実際に私が行うコンテナを開始するには:
docker run a8asd8f9asdf0
その場合、何をしますか:
docker start
行う?
マニュアルではそれは言う
停止している1つ以上のコンテナーを開始する
execute
ますか?
実際に私が行うコンテナを開始するには:
docker run a8asd8f9asdf0
その場合、何をしますか:
docker start
行う?
マニュアルではそれは言う
停止している1つ以上のコンテナーを開始する
execute
ますか?
回答:
これは非常に重要な質問であり、答えは非常に単純ですが、基本的なものです。
docker run IMAGE_ID
とはありません docker run CONTAINER_ID
docker stop CONTAINER_ID
でデータベースを停止した場合、コマンドで同じコンテナを再起動するdocker start CONTAINER_ID
と、データと設定は同じになります。docker rm container_id
)。一方、-v
コマンドラインでオプションを明示的に指定しない限り、ボリュームデータはコンテナーの削除後も存続します。ホストシステム上のボリュームの場所を直接検査できます。この記事を参照してください
&
、run
コマンドラインの最後に必要ですか?数々の(24時間)サービスとして必要
run
画像を実行しますstart
コンテナを起動します。docker run
ドキュメントは言及を行います。
この
docker run
コマンドは、まず指定されたイメージ上に書き込み可能なコンテナーレイヤーを作成し、次に指定されたコマンドを使用してそれを開始します。つまり、docker runはAPI
/containers/create
then と同等/containers/(id)/start
です。
あなたは、あなたがそれに(ドッカ1.3以降)のexecドッキングウィンドウ、既存のコンテナを実行しないでください。終了したコンテナ
を再起動できます。
-i
する必要はありませんdocker run
か?つまり、docker runにはコンテナーを実行するためのイメージが必要です。
例による説明:
コンピューターにゲーム(iso)イメージがあるとします。
あなたが run
(仮想ドライブとしてあなたのイメージをマウントする)、仮想ドライブを仮想ドライブとゲームのインストールファイル内のすべてのゲームコンテンツが自動的に起動されると作成されます。[Dockerイメージの実行-コンテナーを作成してから開始します。]
ただし、stop
(docker stopと同様に)仮想ドライブは存在しますが、すべてのプロセスを停止します。【コンテナは削除されるまで存在するため】
あなたが行うときとstart
(ドッカ開始に類似する)、仮想ドライブからゲームファイルは、その実行を開始します。【既存コンテナの起動】
この例では-ゲームイメージはDockerイメージであり、仮想ドライブはコンテナーです。
daniele3004の答えはすでにかなり良いです。
ただ、間に合わせのアップミックス私のような人のための式run
とstart
時間から時間まで:
docker run [...]
= docker pull [...]
+docker start [...]
"...docker run is equivalent to the API /containers/create then /containers/(id)/start.
(ソース:docs.docker.com/engine/reference/commandline/run)
run
コマンドはイメージからコンテナーを作成し、このコンテナーでルートプロセスを開始します。それを実行するrun --rm
フラグはあなたに後で無用死んだコンテナを除去する手間を省くだろうし、あなたがの存在を無視することができるようになるdocker start
とdocker remove
完全に。
run
コマンドはいくつかの異なることをします:
docker run --name dname image_name bash -c "whoami"
docker ps
bash -c "whoami"
ます。1が実行された場合docker run --name dname image_name
に実行するコマンドを指定せずに、コンテナは直ちに停止状態になります。docker remove
同じ名前でコンテナを起動する前に実行する必要があります。コンテナーが自動的に停止したら、コンテナーを削除するには コマンドに--rm
フラグを追加しrun
ます。
docker run --rm --name dname image_name bash -c "whoami"
単一のコンテナで複数のコマンドを実行するにはどうすればよいですか?そのルートプロセスが死ぬのを防ぐことによって。これは、最初に--detached
フラグを指定して不要なコマンドを実行し、次に「実行」を使用して実際のコマンドを実行することで実行できます。
docker run --rm -d --name dname image_name tail -f /dev/null
docker exec dname bash -c "whoami"
docker exec dname bash -c "echo 'Nnice'"
では、なぜ必要なのdocker stop
でしょうか。我々は無限のコマンドを使用して、以前のスニペットに発売この余韻コンテナを停止しますtail -f /dev/null
。