Help us understand the problem. What is going on with this article?

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした