Dockerコンテナを終了した後も実行を継続する方法

Dockerコンテナを終了した後も実行を継続する方法

現象:

イメージを実行します (例: ubuntu14.04)。

docker run -it --rm ubuntu:14.04 bash

終了時:

Ctrl+Dを実行するか、exitを実行します

スレッドを表示:

ドッカーps

空なので、実行中のコンテナがないことを示します。

解決:

イメージを実行します:

docker run -dit ubuntu:14.04

スレッドを表示:

スレッドを見つけて開きました:

docker attach 【コンテナIDまたは名前】

終了時に実行を継続したい場合は、[ctrl+p]、[ctrl+q]を順に押します。

実行を継続しない場合は、[ctrl+d]を押すか、exitと入力します。

さらに、シャットダウン後に再起動するには、docker restart [コンテナIDまたは名前]と入力してください。

補足: Docker - コンテナを起動した後にシェルスクリプトを実行し、実行が完了したらコンテナを終了するのは避けてください

最近、Dockerfile を使用してコンテナを起動していたのですが、Dockerfile を使用してコンテナ内のシェルを呼び出すと、シェルの実行後に Docker がコンテナを終了してしまうことがわかりました。

分析する

Docker がシェルを実行する場合、バックグラウンドで実行されます。そのため、シェルの実行後、Docker は実行するフォアグラウンド タスクがないことを検出し、コンテナーを終了します。

回避策

シェル スクリプトの最後に「never complete」コマンドを追加します。

# テール -f /dev/null

このように、このコマンドを実行すると、シェルは終了せず、コンテナも終了しません。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • kubernetes1.20 で docker (shim) を containerd に置き換える問題について説明します。
  • Dockerは異常なコンテナ操作を排除する
  • さようなら Docker: 5 分で Containerd に移行する方法
  • Dockerはコンテナにポートを動的に公開します
  • Dockerイメージ内のnoneイメージ操作を削除する
  • Dockerイメージのローカル移行の実装
  • Dockerイメージが消える問題を解決する
  • Docker イメージを削除できません エラー: そのようなイメージはありません: xxxxxx 解決策
  • Dockerでイメージを削除する方法
  • Docker でのコンテナとイメージの命名

<<:  MySQL の接続数が多すぎるエラーの原因と解決策

>>:  CSSプロパティに基づいたボタンホバーボーダーと背景アニメーションのコレクション

推薦する

HTML 9グリッドレイアウトの実装方法

ウェブサイトのレイアウトの多様化は、当社のフロントエンドの得意分野です。最近、UC ブラウザのデフォ...

MySQL 外部キー (FOREIGN KEY) の使用例の詳細な説明

はじめに: すべてのデータを 1 つのテーブルに保存することのデメリット表の構成構造は複雑で不明瞭で...

MySQL オンライン DDL ツール gh-ost 原理分析

目次1. はじめに1.1 原則1.2 プロセス1.3 特徴1.4 githubアドレス2. テスト環...

ページスピードの最適化の概要

インターネットは人々の生活にますます欠かせないものになってきていると思います。 Ajax や fle...

JavaScript の基本演算子

目次1. オペレーター要約する1. オペレーター演算子は、代入、比較、算術演算などの機能を実装するた...

MySQL Server 8.0.13.0 インストールチュートリアル(画像とテキスト付き)

MySQL 6.1.3 をベースにした 8.0.13 をインストールします。 MySQL 8.0....

Reactでコンポーネントがどのように通信するかの詳細な説明

1. 何ですかコンポーネント間の通信は、次の 2 つの単語に分けることができます。コンポーネントコ...

vuexの強制リフレッシュによるデータ損失問題の分析

vuex 永続状態基本原則: すべての vuex データをローカルストレージに保存し、ページが更新さ...

MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)

序文: MYSQL は最も人気のある WEB バックエンド データベースです。最近、NOSQL がま...

オブジェクト指向の観点から Vue コンポーネントを理解するための簡単な分析

同じ関数や HTML コードが複数回使用される場合は、それらをコンポーネントに抽出することを検討でき...

Sublime Text - ブラウザのショートカットキーを設定するための推奨方法

コード効果を異なるブラウザで表示することはよくあることなので、異なるショートカットキーを使用して対応...

WeChatアプレットで数字当てゲームを実装する実際のプロセス

目次機能紹介レンダリング1. ホームページレンダリング用のコード(index03) 2. ゲーム開始...

docker を使用して Django テクノロジー スタック プロジェクトをデプロイする方法

Docker の人気と成熟に伴い、Docker は徐々にプロジェクトをデプロイするための第一の選択肢...

サラウンドリフレクションロード効果を実現するHTML+CSS

この記事では、主に html + css を使用してサラウンド リフレクション ローディング エフェ...

AngularJSにおける括弧の役割の詳細な説明

1. 括弧の役割1.1 角括弧 [ ]属性名が角括弧で囲まれている場合、右側には式の値が割り当てられ...