概要
本稿では、Docker で Ubuntu 16.04 LTS のイメージを利用して、Docker の基本操作を学んでみましょう。
Ubuntu 16.04 のイメージを取得する
Docker はDockerイメージをもとにDockerコンテナを作成する仕組みですので、まずは利用したいDockerイメージを入手する必要があります。 Dockerイメージは、インターネット上でDockerイメージを公開するための Docker Hub というサイトから取得することができます。
Ubuntu 16.04 のDockerイメージも Docker Hub で公開されています。 Ubuntu のリポジトリはこちらで、Ubuntuのバージョンごとにタグが切られて管理されています。
それでは Ubuntu 16.04 の Docker イメージを取得しましょう。 Docker イメージの取得は docker pull コマンドを利用します。 docker pull コマンドの書式は次の通りです。
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
前述の通り Ubuntu のイメージはバージョンごとにタグが切られており、Ubuntu 16.04 のタグ名「16.04」を指定してあげることで、Ubuntu 16.04 の最新版を取得することができます。 よって次のようにコマンドを実行します。
$ docker pull ubuntu:16.04
16.04: Pulling from library/ubuntu
1be7f2b886e8: Pull complete
6fbc4a21b806: Pull complete
c71a6f8e1378: Pull complete
4be3072e5a37: Pull complete
06c6d2f59700: Pull complete
Digest: sha256:e27e9d7f7f28d67aa9e2d7540bdc2b33254b452ee8e60f388875e5b7d9b2b696
Status: Downloaded newer image for ubuntu:16.04
取得したDockerイメージは docker images コマンドで一覧表示できます。 16.04 のタグがついた Ubuntu が取得できたことを確認しましょう。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 0458a4468cbc 3 weeks ago 112MB
Ubuntu 16.04 イメージを使ってみよう
コンテナの作成・起動
Ubuntu 16.04 のDockerイメージが取得できたら、さっそくコンテナを作成して起動してみましょう。 Dockerイメージからコンテナを作成して起動するには docker run コマンドを利用します。 docker run コマンドの書式は次の通りです。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
次のように docker run コマンドを実行して、コンテナを作成・起動してみましょう。 ここでは新しく作成するコンテナに ubuntu1604 という名前をつけています。
$ docker run -it -d --name ubuntu1604 ubuntu:16.04
398a562546a16530a9569b9a54734c3be3ce5676286935105745c66021d1bb45
ここで利用したオプションの意味は次の通りです。
オプション | 意味 |
---|---|
-it | コンテナのプロセスにttyを割り当てる。 |
-d | コンテナをバックグラウンドで実行する。 |
–name | 作成するコンテナに名前をつけるオプション。 |
これでコンテナが作成されて起動されたはずです。 本当に起動されているかを確認するため、起動中のコンテナを一覧表示する docker ps コマンドを実行します。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
398a562546a1 ubuntu:16.04 "/bin/bash" 19 seconds ago Up 24 seconds ubuntu1604
これで Ubuntu 16.04 が利用できるようになりましたので、さっそく Ubuntu 16.04 を操作してみましょう。 docker exec コマンドでコンテナ内のコマンドを実行します。 docker exec コマンドの書式は次の通りです。
docker exec [OPTIONS] CONTAINER COMMAND [ARG..]
ここでは Ubuntu 16.04 コンテナ内の Bash を実行することで操作します。 次の例のように、コンテナ名に先ほど指定した ubuntu1604 を指定して docker exec コマンドを実行すると、Ubuntu 16.04 の Bash がコマンドを待ち受ける状態になります。 root 権限でコマンドが実行できることがわかります。
$ docker exec -it ubuntu1604 /bin/bash
root@398a562546a1:/# あとは Ubuntu 16.04 におけるコマンドが実行できる
なお、コンテナ内で exit コマンドを実行することでコンテナから抜け出すことができます。
コンテナの停止・起動
Ubuntu を一時的に停止する場合ば docker stop コマンドを利用します。 次のように、コマンドの引数としてコンテナ名を指定します。
$ docker stop ubuntu1604
ubuntu1604
コンテナが停止したことを確認するために、先ほどと同様に docker ps コマンドでコンテナを一覧表示させて状態を確認しましょう。 ただし、停止したコンテナは -a オプションをつけないと表示されませんので、次のように実行します。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e735565de68a ubuntu:16.04 "/bin/bash" 2 hours ago Exited (137) 2 minutes ago ubuntu1604
停止したコンテナを再度起動したい場合は docker start コマンドにコンテナ名を指定して実行します。
$ docker start ubuntu1604
ubuntu1604
コンテナの削除
最後に、コンテナを使い終わって不要になった場合は、cocker rm コマンドにコンテナ名を指定すると削除することができます。
$ docker stop ubuntu1604
ubuntu1604
$ docker rm ubuntu1604
ubuntu1604
コンテナを削除すると、docker ps -a コマンドを実行しても表示されず、削除されたことがわかります。
おわりに
本稿では Ubuntu 16.04 のDockerイメージを利用して Docker の操作を学んでいました。 Ubuntu 16.04 でのちょっとした作業リハーサルなどに Docker イメージを役立ててみてください。