📗

DockerをUbuntu環境にインストールする

2021/10/27に公開

DockerをUbuntu環境にインストール

インストール前の準備

自分にとって「簡潔で分かりやすかった」のはここ。

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ja

Ubuntu20.04の場合、上記サイトUbuntu20.04へのDockerのインストール及び使用方法にあるとおりで、以下のコマンドを順に実行すればOK。

上記サイト中のコマンド例で、Ubuntu20.04以外のバージョンでも利用できるようにadd-apt-repositoryの"focal"の部分を$(lsb_release -cs)に変更しています。

リポジトリへの登録
sudo apt update
#apt用のおまじない(aptがhttps経由でパッケージをインストール出来るように、等)
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
#公式DockerリポジトリのGPGキーをシステムに追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
#UbuntuのCODENAMEに合わせたリポジトリ設定を行う
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update

手元のUbuntu18.04(bionic)で実行してみた結果。「取得:」の行にbionicがあるのが確認出来ます。

実行結果
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
#...(途中略)
取得:8 https://download.docker.com/linux/ubuntu bionic InRelease [64.4 kB] 
#...(以下略)

ここまで実行した結果、パッケージインストールで利用するリポジトリがUbuntuではなく、Dockerリポジトリからのものになっているかは下記で確認できます。下記でUbuntu18.04の実行例は、まだインストールしていない環境での実行結果なので、「インストールされているバージョン:(なし)」になっています。

リポジトリの確認
#Ubuntu20.04(docker-ceインストール済み)の場合
apt-cache policy docker-ce
docker-ce:
  インストールされているバージョン: 5:20.10.10~3-0~ubuntu-focal
  候補:               5:20.10.10~3-0~ubuntu-focal
  バージョンテーブル:
 *** 5:20.10.10~3-0~ubuntu-focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
        100 /var/lib/dpkg/status
...(以下略)

#Ubuntu18.04(docker-ce未インストール)の場合
apt-cache policy docker-ce
docker-ce:
  インストールされているバージョン: (なし)
  候補:               5:20.10.10~3-0~ubuntu-bionic
  バージョンテーブル:
     5:20.10.10~3-0~ubuntu-bionic 500
        500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
...(以下略)

インストール実行

ここまででインストール準備は終わっているので、他のパッケージ同様以下のコマンドでインストール出来ます。

インストール実行
sudo apt install docker-ce

これで、Dockerのインストール、デーモン起動、ブート時の起動登録が完了しています。インストールの確認は下記コマンドで出来ます。

dockerサービスの確認
sudo systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-10-26 18:09:11 JST; 16h ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 13808 (dockerd)
      Tasks: 26
     Memory: 485.1M
     CGroup: /system.slice/docker.service
             ├─13808 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
             ├─15820 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.2 -container-port 80
             └─15828 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.17.0.2 -container-port 80
# ...(以下略)

Active: active (running)になっていれば無事にDockerサービスが起動出来ています。
以上でdocker-ceのインストール作業は完了です。

docker-ceインストール直後のCGroup部分
CGroup: /system.slice/docker.service
             └─13808 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
systemd-cgls
sudo systemd-cgls
-.slice
├─user.slice 
│...(途中略)
│ 
└─system.slice 
  ├...(途中略) 
  ├─containerd.service …
  │ ├─ 4193 /usr/bin/containerd
  │ ├─15843 /usr/bin/containerd-shim-runc-v2 -namespace moby -id 5c520d0ccd2f9289ec1bbc8bd0c>
  │ ├─15864 nginx: master process nginx -g daemon off;
  │ ├─15908 nginx: worker process
  │ ├─15909 nginx: worker process
  │ ├─15910 nginx: worker process
  │ └─15911 nginx: worker process
  │ ...(途中略)
  ├─docker.service …
  │ ├─13808 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
  │ ├─15820 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip >
  │ └─15828 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.1>
...(以下略)
GitHubで編集を提案

Discussion