docker runとstartの違い

docker runとstartの違い

docker における実行と開始の違い

Docker run はミラーイメージを指定します。

そしてdocker startはコンテナを指定します

Docker run はイメージを使用してコンテナを生成し、コンテナを起動しますが、Docker start は以前に生成されたコンテナを起動します。

試す

Docker start はすでに作成されているコンテナを起動します。

例えば、私のDockerにはSpringbootプロジェクトのミラーがあります

次に、docker run コマンドを使用して起動します。docker ps を使用すると、springboot コンテナが起動されたことがわかり、その後停止します (docker stop)

次に、docker start を使用して起動し、docker ps を使用して、以前に停止したものが起動したことを確認します。

[root@localhost ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
springbootdocker 最新 5fe8370f7f83 25 時間前 677 MB
daocloud.io/rabbitmq 3-management 1d0a5c8a8d4e 4 週間前 177 MB
daocloud.io/library/tomcat 最新 89481b5d9082 7 週間前 506 MB
daocloud.io/library/mysql 5.5 d404d78aa797 3か月前 205 MB
daocloud.io/library/java 最新 d23bdf5b1b1b 2年前 643 MB
docker.io/java 8 d23bdf5b1b1b 2年前 643 MB
[root@localhost ~]# docker run --name springboot -p 8080:8080 -d 5f
dd100a4c60a7a6606244873bc61a8a6f419361ab78fcd038d4baef3f38f05157
[root@localhost ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
dd100a4c60a7 5f "java -Djava.secur..." 19 秒前 18 秒前にアップ 0.0.0.0:8080->8080/tcp springboot
[root@localhost ~]# docker stop dd
dd
[root@localhost ~]# docker ps -a
コンテナID イメージ コマンド 作成ステータス ポート名
dd100a4c60a7 5f "java -Djava.secur..." 39 秒前 終了 (143) 3 秒前 springboot
f3b181616dac 1d0a5c8a8d4e "docker-entrypoint..." 3 週間前 終了 (255) 2 週間前 4369/tcp、5671-5672/tcp、0.0.0.0:5762->5762/tcp、15671/tcp、25672/tcp、0.0.0.0:15672->15672/tcp myrabbit0
ea0a9cb0fe2f 89481b5d9082 "catalina.sh run" 4 週間前 終了 (129) 4 週間前 clever_leakey
[root@localhost ~]# docker start dd
dd
[root@localhost ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
dd100a4c60a7 5f "java -Djava.secur..." 約 1 分前 2 秒前に起動 0.0.0.0:8080->8080/tcp springboot
[root@localhost ~]#

補足: Docker コンテナの起動 | 再起動 | 停止

最近、Fabric ネットワークのメンテナンス中に、サーバーの電源障害が発生しました。Kafka と Zookeeper のコンテナを除き、他のコンテナはすべて Exited 状態でした。

コンテナを再起動する必要があります

1. dockerを起動する

停止したコンテナを1つ以上起動する

docker start [オプション] コンテナ [コンテナ...]
#コンテナの名前またはIDに従ってコンテナを起動できます $ docker start ID/NAME

オプション:
# -a パラメータはコンテナに接続し、出力またはエラーを出力します -a, --attach STDOUT/STDERR をアタッチし、シグナルを転送します 
# パラメータが分かりません…
   --detach-keys string コンテナをデタッチするためのキーシーケンスを上書きする
# -i パラメータはコンテナを起動し、対話モードに入ります -i, --interactive コンテナの STDIN を接続します

2. dockerを再起動する

コンテナが以前に起動または停止されたかどうかに関係なく、コンテナを再起動します。

docker restart [オプション] コンテナ [コンテナ...]
#コンテナの名前またはIDに応じてコンテナを再起動できます $ docker restart ID/NAME

オプション:
# -t パラメータ コンテナを停止するまでの待機時間 (デフォルト 10 秒)
 -t, --time int コンテナを強制終了する前に停止を待つ秒数 (デフォルト 10)

3. docker を停止する

実行中のコンテナを停止する

docker stop [オプション] コンテナ [コンテナ...]
#コンテナの名前またはIDに応じてコンテナを停止できます $ docker restart ID/NAME

オプション:
# -t パラメータ コンテナを停止するまでの待機時間 (デフォルト 10 秒)
 -t, --time int 停止を待つ秒数 (デフォルト 10)

これらのコマンドを使用すると、停止したコンテナを再起動するのに便利です。

もう 1 つ注意すべき点は、Fabric ネットワーク内のチェーンコード コンテナは、上記のコマンドを使用して再起動する必要がないことです。起動したピア ノードがクエリ コマンドを使用してクエリを実行すると、チェーンコード コンテナが自動的に起動します。

以下もご興味があるかもしれません:
  • Dockerイメージ送信コマンドcommitの動作原理と使い方の詳細な説明
  • docker run 起動パラメータ コマンドを表示する方法 (推奨)
  • Dockerのプロセスとイメージを実行するための基本コマンドの詳細な説明

<<:  React コンポーネント間で通信する 3 つの方法 (シンプルで使いやすい)

>>:  HTML テキストエスケープのヒント

推薦する

LinuxはRsync+Inotifyを使用してローカルとリモートのデータのリアルタイム同期を実現します。

0x0 テスト環境本社本番サーバーと支社バックアップサーバーはリモートデータバックアップが必要です...

VMware 上の CentOS に Oracle12.2 をサイレント インストールする詳細なグラフィック チュートリアル

環境準備: VMware+CentOS、jdk 1. システムディスクのサイズを確認する1. コマン...

Ubuntu で nvidia グラフィック ドライバーをインストールする (簡単なインストール方法)

Ubuntu で nvidia グラフィック カード ドライバーをインストールします。同じ方法で ...

MySQL の従来のソート、カスタム ソート、中国語のピンイン文字によるソート

MySQL の通常のソート、カスタム ソート、中国語のピンイン文字によるソート。実際の SQL を記...

Vue の vue.$set() メソッドのソースコード例の詳細な説明

Vue を使用してプロジェクトを開発する過程で、次のような問題によく遭遇します。Vue のデータでオ...

CentOS 7 で rpm パッケージを使用して MySQL 5.7.18 をインストールする

最近、MySQL を使っています。Linux での mysql-installation という記事...

HTML の ReadOnly と Enabled の違い

ReadOnly 属性を持つ TextBox は、クライアント上で次のマークアップとして表示されます...

HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...

js、css、htmlはブラウザのさまざまなバージョンを決定します

正規表現を使用してIEブラウザのバージョンを判別するIEブラウザかどうか確認するif (docume...

JavaScriptがDOMツリーの構築にどのように影響するかについて詳しく説明します。

目次ドキュメント オブジェクト モデル (DOM) DOM と JavaScript DOMツリーの...

MySQLとOracleのメタデータ抽出例分析

目次序文メタデータとは参照文書アドレスまずはMySQLについてお話しましょうOracleについて話し...

Linuxのlocateコマンドの使い方

01. コマンドの概要実際には、locate コマンドは find -name の別の書き方ですが、...

Vue を通じて QR コードスキャン機能を実装する

ヒントこのプラグインは https プロトコルでのみアクセスできます。http プロトコルはうまく機...

サーバー上でjupyterノートブックを実行する問題を解決する

目次サーバーはjupyterノートブックを実行します仮想環境次にファイアウォールをオフにしますJup...

初心者向けウェブサイト構築チュートリアル: 10 日間でウェブサイトの構築方法を学ぶ

10 日間のチュートリアルでは、最も理解しやすい言語を使用し、最も基本的なことから始めて、誰もが W...