LoginSignup
40
48

More than 1 year has passed since last update.

Ubuntu 22.04にdockerをインストールする

Last updated at Posted at 2022-06-09

まえがき

Ubuntu 22.04にdockerをインストールする方法をメモしておきます。Dockerをインストールする方法は公式ドキュメントでは3つ紹介されています。

  1. Dockerのリポジトリを登録してそこからインストールする方法
  2. DEBパッケージをダウンロードして手動でインストールする方法
  3. コンビエンススクリプトを使用して自動でインストールする方法

ここでは1のDockerのリポジトリを登録してそこからインストールする方法をつかいます。基本的にDocker公式サイトに従っています。

環境

  • Ubuntu 22.04
  • Docker 20.10.17

古いバージョンの削除

もし今までにDockerをインストールしたことがあって削除したい場合は削除しておきます。

$ sudo apt-get remove docker docker-engine docker.io containerd runc

dockerリポジトリの設定

準備

必要なパッケージをインストールします。

$ sudo apt-get update
$ sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

Dockerの公式GPGキーを取得する

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

リポジトリの登録

リポジトリを登録した後、リポジトリの設定ファイルが作成されたことを確認しています。

$  echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Dockerのインストール

Dockerのインストール

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

バージョンの確認

$ sudo docker -v
Docker version 20.10.17, build 100c701

バージョンを指定してDockerをインストールする

インストールするバージョンを指定したい場合はapt-cache madisonコマンドでインストール出来るバージョンを調べてからインストールします。

$ sudo apt update
$ apt-cache madison docker-ce
 docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
 docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
$ sudo apt-get install docker-ce=5:20.10.13~3-0~ubuntu-jammy docker-ce-cli=5:20.10.13~3-0~ubuntu-jammy containerd.io docker-compose-plugin

バージョンの確認

$ docker -v
Docker version 20.10.13, build a224086

動作確認

$ sudo docker run hello-world

# 抜粋表示させています
Hello from Docker!
This message shows that your installation appears to be working correctly.

一般ユーザでDockerを実行できるようにする

Dockerを実行するたびにsudoをしなくて済むように一般ユーザをdockerグループに所属させます。
最初dockerグループには誰も所属していなかったのがusermodコマンドでユーザをdockerグループに追加しています。

$ getent group | grep docker
docker:x:999:
$ sudo usermod -aG docker $USER
$ getent group | grep docker
docker:x:999:yoshi

一旦ログインし直してidコマンドでdockerグループに所属していることを確認しています。

$ id
uid=1001(yoshi) gid=1001(yoshi) groups=1001(yoshi),27(sudo),999(docker)

すろとsudoコマンド無しでdockerを起動できるようになりました。

$ docker run hello-world

# 抜粋表示させています
Hello from Docker!
This message shows that your installation appears to be working correctly.

docker compose

docker composeはdocker-compose-pluginパッケージをインストールするとdockerのサブコマンドとして使えるようになっています。

$ docker compose version
Docker Compose version v2.6.0

次のようなフォルダ構成でdocker composeの動作確認をしてみます。

.
├ src
│ └ index.yml
├ Dockerfile
└ docker-compose.yml
$ cat Dockerfile 
FROM nginx:1.21.6-alpine
$ cat docker-compose.yml 
version: '3'

services:
  nginx:
    build: ./
    image: nginx
    ports:
      - 8888:80
    volumes:
      - ./src:/usr/share/nginx/html
$ cat ./src/index.html 
<h1>Hello World!</h1>

docker compose upでコンテナを起動してdocker compose psで起動したコンテナを確認してSTATUSがrunningになっているのでOKです。

$ docker compose up -d
$ docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
yoshi-nginx-1       "/docker-entrypoint.…"   nginx               running             0.0.0.0:8888->80/tcp, :::8888->80/tcp

ブラウザでlocalhost:8888にアクセスしてHello World!と表示されればOKです。
ここでは環境の問題でcurlで確認しています。

$ curl localhost:8888
<h1>Hello World!</h1>

参考サイト

Ubuntu 22.04にdockerをインストールする

40
48
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
48