[解決済み】"docker run -d "の後、Dockerコンテナが自動的に停止する。
質問
これまで読んだチュートリアルによると、".を使用するようです。
docker run -d
とすると、イメージからコンテナが起動し、コンテナはバックグラウンドで実行されます。このように、すでにコンテナIDがあることがわかります。
root@docker:/home/root# docker run -d centos
605e3928cdddb844526bab691af51d0c9262e0a1fc3d41de3f59be1a58e1bd1d
しかし、もし私が"
docker ps
"は、何も返されませんでした。
そこで、"を試してみました。
docker ps -a
"、コンテナはすでに終了していることがわかります。
root@docker:/home/root# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
605e3928cddd centos:latest "/bin/bash" 31 minutes ago Exited (0) 31 minutes ago kickass_swartz
何か間違ったことをしましたか?この問題のトラブルシューティングはどうすればいいのでしょうか?
解決方法は?
その
Centos dockerfile
は、デフォルトのコマンド
bash
.
つまり、バックグラウンドで実行された場合(
-d
を使用すると、シェルは直ちに終了します。
2017年の更新情報
最近のdockerは、コンテナの実行を
デタッチドモード
と
で
フォアグラウンドモード
(
-t
,
-i
または
-it
)
この場合、追加のコマンドは必要なく、これだけで十分です。
docker run -t -d centos
bashはバックグラウンドで待機します。
で当初報告されていたことです。
カルヤニ・チャウドハリ
's
回答
で詳しく説明しています。
ジャージ豆
's
回答
.
vonc@voncvb:~$ d ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4a50fd9e9189 centos "/bin/bash" 8 seconds ago Up 2 seconds wonderful_wright
ただし アルパイン , マリノス・アン レポート コメントで :
docker run -t -d alpine/git
はプロセスを維持しません。
しなければならなかった。docker run --entrypoint "/bin/sh" -it alpine/git
オリジナル回答(2015年)
で述べたように この記事 :
で実行するのではなく
docker run -i -t image your-command
を使用すると-d
を打つことでコンテナの端末を切り離す必要がなくなり、1つのコマンドでコンテナを実行できるようになるため、推奨されています。 Ctrl + P + Q .
<ブロッククオートただし
-d
オプションを使用します。 フォアグラウンドでコマンドを実行し続けない限り、コンテナはすぐに停止します。 .
Dockerは、コマンドをフォアグラウンドで実行し続けることを要求します。そうしないと、アプリケーションが停止したとみなされ、コンテナがシャットダウンしてしまいます。
問題は、あるアプリケーションがフォアグラウンドで実行されないことです。どうすれば簡単にできるでしょうか?
<ブロッククオート
このような場合、以下のように
tail -f /dev/null
をコマンドに追加してください。
こうすることで、メインのコマンドがバックグラウンドで実行されても、tailがフォアグラウンドで実行され続けるので、コンテナが停止することはない。
ということは、これならうまくいきそうですね。
docker run -d centos tail -f /dev/null
またはDockerfileで。
ENTRYPOINT ["tail"]
CMD ["-f","/dev/null"]
A
docker ps
を選択すると、centosコンテナがまだ動作していることが表示されます。
そこから、あなたは
アタッチまたはデタッチする
(または
docker exec
コマンドもあります)。
関連
-
[解決済み] docker-compose: ラン、エクゼクティブの違い、レイヤーはどうなるのか?
-
[解決済み] docker-compose.ymlでコンテナをrootで立ち上げる設定方法
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] Dockerイメージをコンテナとして実行する
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
-
[解決済み】Dockerコンテナからホストポートにアクセスする方法
-
[解決済み】Dockerでディレクトリを変更するコマンドは?
-
[解決済み】サービス開始後にDockerコンテナを起動し続けるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] docker-compose: バインドマウントとマネージドマウントのマウントを定義する
-
[解決済み] docker-compose: ラン、エクゼクティブの違い、レイヤーはどうなるのか?
-
[解決済み] docker -vコマンドを理解する
-
[解決済み] コンテナを停止させずに切り離す正しい方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】擬似TTYを割り当てるDockerの-tオプションに戸惑う
-
[解決済み】Dockerでnamedタグとlatestタグを作成する方法とは?
-
[解決済み】dockerの内部からdockerを実行しても大丈夫ですか?
-
[解決済み】docker - コンテナの自動再起動を無効にする方法は?
-
[解決済み】サービス開始後にDockerコンテナを起動し続けるには?