📝

【Docker】CentOS7.6にDocker環境を構築してみた。

2021/05/10に公開

はじめに

CentOS7.6にDocker環境を構築してみました。
構築迄の流れをアウトプットしていきたいと思います。

構成図

仮想マシンのスペック

項目 設定
VM名 terraform-sv
OS CentOS Linux release 7.6.1810 (Core)
vCPU 2
メモリ(GB) 2
ブートディスク 50GB

※最低限の構成ではありません。

前提

  • OSインストール&基本設定済み(IPアドレス設定等)
  • 特に他の設定をしていない状態

作業の流れ

①Dockerインストール
②Docker起動・自動起動設定
③Dockerテスト

作業手順

①Dockerインストール

1.リポジトリを設定する。

  • yum-utilsパッケージ(yum-config-manager ユーティリティを提供する)をインストール
コマンド
sudo yum install -y yum-utils
  • リポジトリに「docker-ce.repo」を追加
コマンド
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

2.Dockerエンジンのインストール

Docker関連パッケージをインストール

コマンド
sudo yum install -y docker-ce docker-ce-cli containerd.io

**完了しました!**と表示されることを確認。

実行例
依存性を更新しました:
  audit.x86_64 0:2.8.5-4.el7               audit-libs.x86_64 0:2.8.5-4.el7
  policycoreutils.x86_64 0:2.5-34.el7

完了しました!

3.Dockerがインストールされていることを確認

コマンド
docker -v

Dockerのバージョン情報が表示されることを確認

実行例
[terraform@terraform-sv ~]$ docker -v
Docker version 20.10.6, build 370c289
[terraform@terraform-sv ~]$

②Docker起動・自動起動設定

1.Docker起動

  • Docker起動
コマンド
sudo systemctl start docker
  • Docker起動確認
コマンド
systemctl status docker

active (running)と表示されていれば問題なし。

実行例
[root@terraform-sv ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since 月 2021-05-10 19:52:43 JST; 4s ago
     Docs: https://docs.docker.com
 Main PID: 4502 (dockerd)
    Tasks: 10
   Memory: 60.5M
   CGroup: /system.slice/docker.service
           mq4502 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont...

 510 19:52:42 terraform-sv dockerd[4502]: time="2021-05-10T19:52:42.4122...c
 5月 10 19:52:42 terraform-sv dockerd[4502]: time="2021-05-10T19:52:42.4123...c
 510 19:52:42 terraform-sv dockerd[4502]: time="2021-05-10T19:52:42.4123...c
 5月 10 19:52:42 terraform-sv dockerd[4502]: time="2021-05-10T19:52:42.4918..."
 5月 10 19:52:42 terraform-sv dockerd[4502]: time="2021-05-10T19:52:42.8634..."
 5月 10 19:52:42 terraform-sv dockerd[4502]: time="2021-05-10T19:52:42.9384..."
 5月 10 19:52:43 terraform-sv dockerd[4502]: time="2021-05-10T19:52:43.0087...6
 510 19:52:43 terraform-sv dockerd[4502]: time="2021-05-10T19:52:43.0088..."
 510 19:52:43 terraform-sv systemd[1]: Started Docker Application Contai....
 510 19:52:43 terraform-sv dockerd[4502]: time="2021-05-10T19:52:43.0657..."
Hint: Some lines were ellipsized, use -l to show in full.
[root@terraform-sv ~]#

2.Docker自動起動設定

※OS起動の際に同時にDockerが立ち上がるようにする。

  • Docker自動起動設定
コマンド
sudo systemctl enable docker

シンボリックリンクが作成されることを確認。

実行例
[terraform@terraform-sv ~]$ sudo systemctl enable docker
[sudo] terraform のパスワード:
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[terraform@terraform-sv ~]$
  • Docker自動起動設定確認
コマンド
systemctl is-enabled docker

enableであることを確認。

実行例
[terraform@terraform-sv ~]$ systemctl is-enabled docker
enabled
[terraform@terraform-sv ~]$

③Dockerテスト

※こちらの作業はrootユーザーにて実施する。

1.rootユーザーへ移行

コマンド
sudo -i
実行例
[terraform@terraform-sv ~]$ sudo -i
[sudo] terraform のパスワード:
[root@terraform-sv ~]#

2.「Hello World」コンテナの作成

コマンド
docker run hello-world
実行例
[root@terraform-sv ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:f2266cbfc127c960fd30e76b7c792dc23b588c0db76233517e1891a4e357d519
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

[root@terraform-sv ~]#

3.「Hello World」コンテナ確認/イメージ確認

  • コンテナが存在することを確認
コマンド
docker ps -a

「Hello World」は、メッセージ表示後に停止状態になる。

実行例
[root@terraform-sv ~]# docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED              STATUS                          PORTS     NAMES
dfd685e54e7e   hello-world   "/hello"   About a minute ago   Exited (0) About a minute ago             blissful_stonebraker
[root@terraform-sv ~]#
  • イメージ確認
コマンド
docker images

「Hello World」が存在することを確認。

実行例
[root@terraform-sv ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   2 months ago   13.3kB
[root@terraform-sv ~]#

4.「Hello World」コンテナ削除/イメージ削除

  • コンテナ削除

コンテナIDを確認

コマンド
docker ps -a
実行例
[root@terraform-sv ~]# docker ps -a
CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     PORTS     NAMES
dfd685e54e7e   hello-world   "/hello"   5 minutes ago   Exited (0) 5 minutes ago             blissful_stonebraker
[root@terraform-sv ~]#

→「hello-world」のコンテナIDはdfd685e54e7e

コンテナ削除

コマンド
docker rm <コンテナID>
実行例
[root@terraform-sv ~]# docker rm dfd685e54e7e
dfd685e54e7e
[root@terraform-sv ~]#

コンテナが存在しないことを確認

コマンド
docker ps -a
実行例
[root@terraform-sv ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@terraform-sv ~]#
  • イメージ削除

イメージID確認

コマンド
docker images
実行例
[root@terraform-sv ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    d1165f221234   2 months ago   13.3kB
[root@terraform-sv ~]#

→イメージIDはd1165f221234

イメージ削除

コマンド
docker rmi <イメージID>
実行例
[root@terraform-sv ~]# docker rmi d1165f221234
Untagged: hello-world:latest
Untagged: hello-world@sha256:f2266cbfc127c960fd30e76b7c792dc23b588c0db76233517e1891a4e357d519
Deleted: sha256:d1165f2212346b2bab48cb01c1e39ee8ad1be46b87873d9ca7a4e434980a7726
Deleted: sha256:f22b99068db93900abe17f7f5e09ec775c2826ecfe9db961fea68293744144bd
[root@terraform-sv ~]#

イメージが存在しないことを確認。

コマンド
[root@terraform-sv ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@terraform-sv ~]#

さいごに

今回は、CentOS7.6にDocker環境を構築しました。
次回は、こちらにZabbixマネージャーを構築していきます。

参考

CentOS7にDockerをインストールする
CentOSにDockerエンジンをインストールする
Docker入門 ~Hello World~

Discussion