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 テキストエスケープのヒント

推薦する

React と Threejs を使用して VR パノラマ プロジェクトを作成する詳細なプロセス

最近、 Three.jsでReactを使用して、720 度のパノラマ写真を閲覧できるプロジェクトを構...

Dockerボリューム削除操作

プルーンこのコマンドを使用するには、クライアントとデーモンの両方の API バージョンが少なくとも ...

Element UI をインストールして vue3.0 でベクター グラフィックスを使用する方法

ここでは、v3 のインストールと使用にのみ焦点を当てます。v2 について学びたい場合は、公式 Web...

MySQL explain クエリ命令情報の取得原理と例

explain はクエリ実行プラン情報を取得するために使用されます。 1. 文法次のように、sele...

Ubuntu 19.04 インストール チュートリアル (画像とテキストの手順)

1. 準備1.1 VMware 15 をダウンロードしてインストールするダウンロード リンク: h...

MySQLインデックスの詳細

1. インデックスの原則インデックスは、列内の特定の値を持つ行をすばやく見つけるために使用されます。...

Tomcatのデフォルトパスの設定によって発生するプロジェクトURLの競合を解決する方法の詳細な説明

序文Tomcat は優れた Java コンテナですが、避けられない小さな落とし穴もいくつかあります。...

RHEL8 /CentOS8 でマルチノード Elastic Stack クラスターを構築する方法

一般的に ELK スタックとして知られる Elastic スタックは、Elasticsearch、L...

mycat を使用して MySQL データベースの読み取りと書き込みの分離を実装する例

MyCATとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベースク...

Windows での自動展開に Jenkins を使用するチュートリアル図

今日は、Jenkins + powershell スクリプトを使用して、.NET CORE スクリプ...

JavaScript コードベースをよりクリーンにする 5 つの方法

目次1. 短絡や条件文の代わりにデフォルトのパラメータを使用する2. 複数の条件の処理3. スイッチ...

Docker はすべてのコンテナをバッチ起動して閉じます

Dockerの場合すべてのコンテナコマンドを開始する docker を起動します $(docker ...

dockerコンテナは直接実行され、pingを介してパブリックIP操作を取得します。

コンテナを通じてローカル パブリック IP アドレスを取得します。ローカル IP アドレスを使用して...

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...