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