Posted at

Dockerコンテナの作成、起動〜停止まで

More than 3 years have passed since last update.

今回はDocker Hubからイメージを取得し、コンテナを作成した後に起動/停止といった一連の流れを行います。


1.イメージの確認

docker imagesコマンドを実行すると、Docker Machineに保存されているイメージを確認できます。


$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE


何も保存されていないので現在はリストされていいるものがありません。

それではイメージの取得を行いましょう。


2.イメージの取得

今回はDocker Hubにあるubuntuリポジトリからコンテナイメージを取得します。

取得はdocker pull <REPOSITORY>コマンドで行えます。


$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
0a85502c06c9: Pull complete
0998bf8fb9e9: Pull complete
a6785352b25c: Pull complete
e9ae3c220b23: Pull complete
Digest: sha256:f91f9bab1fe6d0db0bfecc751d127a29d36e85483b1c68e69a246cf1df9b4251
Status: Downloaded newer image for ubuntu:latest


以上で取得が完了しました。再度イメージの確認をするとREPOSITORYが"ubuntu"という名前のイメージが取得されているのが確認できます。


$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest e9ae3c220b23 6 days ago 187.9 MB


このコマンドは実行したタイミングでhttps://hub.docker.com/_/ubuntu/にある最新のものを取得しています。


3.コンテナの作成

まず、docker psコマンドで現在のコンテナの稼働状況を確認します。


$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES


現状、ひとつも稼働していないため、何も表示されません。

それでは、先ほど取得したイメージ(ubuntu)からコンテナを作成します。


$ docker run -it ubuntu
root@0b5aad08487b:/#


上記のコマンドを実行すると作成と同時にコンテナも起動し、そのタイミングで自動的にログインします。

また、ログイン状態を抜けるには"control"を押した状態で"P、Q"を順番に押します。

この抜けることを「dettach(デタッチ)」と呼びます。

サーバからログアウトする感覚でexitコマンドを実行すると、起動したコンテナも停止してしまうので注意してください。

それでは、"control + P、Q"で抜けた後に再度docker psコマンドで稼働状況を確認します。


$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b5aad08487b ubuntu "/bin/bash" 10 minutes ago Up 10 minutes big_hawking


STATUSがUPになっているのが確認できます。

先ほどdettachしたubuntuコンテナに再度ログインするには、docker attach <CONTAINER IDまたはNAME>を実行します。


$ docker attach 0b5aad08487b

root@0b5aad08487b:/#



または、


$ docker attach big_hawking
root@0b5aad08487b:/#

それでは一旦、exitコマンドでコンテナを抜けて停止させましょう。


root@0b5aad08487b:/# exit
exit


確認してみると表示されなくなりました。


$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES


これはdocker psコマンドが「現在稼働中のコンテナのみを表示する」からです。

"-a"オプションを付けることで、停止中のも含めて全てのコンテナを表示します。


$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b5aad08487b ubuntu "/bin/bash" 26 minutes ago Exited (0) 4 minutes ago big_hawking


ここでは停止しているのでSTATUSがExitedとなっています。

「Exited=停止」という意味です。


4.コンテナの起動

コンテナイメージを作成した後はdocker start <CONTAINER IDまたはNAME>で起動することができます。


$ docker start 0b5aad08487b
0b5aad08487b


または、


$ docker start big_hawking
big_hawking

STATUSがUpとなり、起動しているのが確認できます。


$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b5aad08487b ubuntu "/bin/bash" 31 minutes ago Up 3 seconds big_hawking


5.コンテナの停止

起動と同様に、docker stop <CONTAINER IDまたはNAME>で停止することができます。


$ docker stop 0b5aad08487b
0b5aad08487b


または、


$ docker stop big_hawking
big_hawking

STATUSがExitedとなり、停止しているのが確認できます。


$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b5aad08487b ubuntu "/bin/bash" 38 minutes ago Exited (0) 9 seconds ago big_hawking

また、docker startコマンドで起動させた場合でも、docker attach後にexit

コマンドで抜けると停止します。


$ docker attach big_hawking
root@0b5aad08487b:/#



root@0b5aad08487b:/# exit
exit



$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b5aad08487b ubuntu "/bin/bash" 42 minutes ago Exited (0) 4 seconds ago big_hawking

以上、コンテナの作成、起動〜停止までの基本的な操作方法です。