Dockerを初めて使用し、さまざまなチュートリアルに従って学習する場合は、Dockerコンテナーの開始、Dockerコンテナーの実行、Dockerコンテナーの作成などの用語に出くわす可能性があります。
3つのdockerコマンドはすべて類似しているように見えるため、これらの用語はdocker初心者を混乱させるのに十分です。
実際、dockerrunとdockerstartの違いを区別することは特に困難です。
コンテナを実行することは、それを開始することと同じではありませんか?そうではありません。
説明させてください。
Docker run、Docker start、Dockercreateの違い
これらのコマンドの機能は次のとおりです。
Docker作成コマンド Dockerイメージから新しいコンテナを作成します。ただし、すぐには実行されません。
Docker開始コマンド 停止したコンテナを起動します。 docker createコマンドを使用してコンテナーを作成した場合は、このコマンドで開始できます。
Docker実行コマンド 新しいコンテナを作成してすぐに開始するため、作成と開始の組み合わせです。実際、docker runコマンドは、システム上で言及されたイメージが見つからない場合、DockerHubからイメージをプルすることもできます。
物事がより明確になるように、例を挙げて見てみましょう。
例を挙げて見てみましょう
例に従う場合は、Dockerがインストールされていることを確認してください。
dockerpullubuntuコマンドを使用してDockerHubからUbuntuイメージをダウンロードするとします。
システムで利用可能なすべてのDockerイメージを表示できます。この例ではubuntuしかありません(混乱を避けるため):
[email protected]:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 775349758637 5 weeks ago 64.2MB
次に、dockercreateコマンドを使用してcontainer-1という名前の新しいdockerコンテナを作成します。
[email protected]:~$ docker create --name container-1 ubuntu
2d9a8c190e6c9b3cbbc032a87762bfbc92f1dc0dd30abbe9bdb3ed7e74a6480f
新しいコンテナが作成されたことがわかります。実行中のすべてのコンテナを表示しようとすると、container-1は作成されたものの、開始されていないため、表示されません。
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
実行中かどうかに関係なく、すべてのコンテナをチェックすると、container-1のステータスが作成済みであることがわかります。
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2d9a8c190e6c ubuntu "/bin/bash" 18 seconds ago Created container-1
それでは、dockerrunコマンドを使用しましょう container-2という名前のコンテナーを作成して実行するには:
[email protected]:~$ docker run -it -d --name container-2 ubuntu bash
13dc0f4226dc8d9d86e41d927c5616654d8263da2cc8c667aaa5b4dbd7f7e9b3
ステータスがUpであるため、container-2が実行されていることがわかります。
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" About a minute ago Up About a minute container-2
この実行中のコンテナを停止しましょう:
[email protected]:~$ docker stop container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[email protected]:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 2 minutes ago Exited (0) 28 seconds ago container-2
2d9a8c190e6c ubuntu "/bin/bash" 3 minutes ago Created container-1
停止したコンテナができたので、dockerstartコマンドを使用してコンテナを再開できます。 :
[email protected]:~$ docker start container-2
container-2
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 2 minutes ago Up 2 seconds container-2
しかし、docker createコマンドを使用して作成されたcontainer-1はどうなりますか?このコンテナはdockerstartコマンドで起動し、dockerexecを使用して特定の何かを実行できます。
この記事で、docker run、docker start、dockercreateコマンドについて理解を深めていただければ幸いです。このトピックをさらに理解するために、コンテナのライフサイクルについて学ぶことをお勧めします。
コンテナライフサイクルを管理するためのDockerコマンドコンテナライフサイクルの概念を学びます。また、コンテナーのライフサイクルの各段階を管理するためのDockerコマンドについても学びます。 Linux HandbookDebdut Chakrabortyご質問やご提案がございましたら、下にコメントを残してください。