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

推薦する

JavaScript の 7 つのデータ型の詳細な説明

目次序文:詳しい紹介:練習する:要約する序文: Python、Java、Cシリーズなど、すべての主要...

Vue+SpringBoot で Alipay サンドボックス決済を実装するためのサンプルコード

まず、Alipay サンドボックスから一連のものをダウンロードします。多くのブログで取り上げられてお...

MySQL数千万の大規模データに対する30のSQLクエリ最適化テクニックの詳細な説明

1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...

ORM モデル フレームワークを使用して MySQL データベースを操作する方法

ORM とは何ですか? ORM は Object Relational Mapping の略で、オブ...

Alibaba Cloud ServerにMySQLデータベースをインストールする方法の詳細な説明

序文学習中に Zookeeper をインストールする必要があったため、仮想マシンに常に問題が発生した...

Linux でも利用できる人気の Windows アプリ 10 選

データ分析会社Net Market Shareによると、Linuxデスクトップオペレーティングシステ...

MySQL クラスタの詳細な説明: 1 つのマスターと複数のスレーブのアーキテクチャ実装

実験環境: 1. CentOS 7 サーバー 3 台2. mysql5.7.26 (3台のマシンはす...

Day.js をベースにした JavaScript での日付処理のよりエレガントな方法

目次day.js を使用する理由モーメントデイ.js day.js がなければどうなるでしょうか? ...

Linux に MySQL 8.0.x をインストールするための完全な手順

マイグレーションMySQL 入門MySQL はもともとオープンソースのリレーショナル データベース管...

CentOS 8 / RHEL 8 に VirtualBox 6.0 をインストールするための詳細なチュートリアル

VirtualBox は、技術者が異なる種類の複数の仮想マシン (VM) を同時に実行できるようにす...

MySQL スロークエリを通じて MySQL のパフォーマンスを最適化する方法

アクセス数が増えると、MySQL データベースへの負荷が増大します。MySQL アーキテクチャを使用...

html-webpack-plugin' を使用してメモリ内に HTML ページ プラグインを生成します。

webpackjs ファイルをパッケージ化するときに、次に示すように、index.html インタ...

HTMLで境界線を設定する3つの方法の詳細な説明

HTML で境界線を設定する 3 つの方法 境界線の幅: 1px 2px 2px; 境界線のスタイル...

JavaScript配列についてさらに詳しく知るのに役立つ記事

目次1. 配列の役割: 2. 配列の定義: 1. コンストラクタを通じて配列を作成する2. リテラル...

CSSのtranslate(-50%,-50%)は水平および垂直の中央揃え効果を実現します。

translate(-50%,-50%) 属性:中央に配置するには、長さと幅の 50% だけ上と左...