DockerでCentOS 7のイメージを利用してみよう

投稿者 : OSCA

概要

 本稿では、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 イメージを役立ててみてください。

著者 : OSCA

OSCA

 初級WEBエンジニアです。最近は Android, iOS, WEBアプリの作成に力を入れています。 個人として何か一つでも世の中の多くの人に使ってもらえるアプリを作ろうと日々奮闘中です。
@engineer_osca