Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

プロキシサーバー経由でインターネットに接続される環境では、上記は失敗します。

以下の「プロキシサーバー経由で接続している場合」の手順を実施してください。

 

Info

環境によっては、UbuntuWSL2を使用してWindows PC上に環境を構築している場合、環境によってはUbuntu-22.04でDockerが起動できない現象が発生しています。

その場合、WSL2のUbuntu 22.04でDockerが起動しない問題対応 #Ubuntu22.04 - Qiita

上記情報などを参考に、iptables-legacyを使用するようにしてください。

  • dockerコマンドはデフォルトではroot権限が必要なので、ユーザー権限でも実行できるように、dockerグループにユーザーを追加します。 公式ドキュメントでは、 Linux post-installation steps for Docker Engine に記載されています。

  • dockerユーザーグループを作成します。

    Code Block
    sudo groupadd docker

    groupadd: group 'docker' already exists と表示される場合は、すでにグループが作成されていますので続行します。

  • 通常使用するユーザーをdocker groupに追加します。

    Code Block
    sudo usermod -aG docker $USER

     

  • 設定を反映します。

    Code Block
    newgrp docker

     

  • sudo無でdockerが実施できることを確認します。

    Code Block
    docker run hello-world

    成功した場合の表示例です。

    Code Block
    ipro@PC-HP2208N0101R:~$ docker run hello-world
    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/

     WSL環境の場合は確認ください。


  • WSLでインストールしたUbuntuはサービスの制御がsystemdによって行われています。(以前はSysVInitでした)。systemdの設定を変更して、起動時にDockerサービスが自動起動する設定を行います。WSL2を使用してWindows PC上に環境を構築している場合は確認ください。
    WSLでインストールしたUbuntuはサービスの制御がsystemdによって行われています。systemdの設定を変更して、起動時にDockerサービスが自動起動する設定を行います。

    Code Block
    sudo systemctl enable docker.service
    sudo systemctl enable containerd.service

     

  • 起動時にdockerサービスが起動するかどうか確認するために一度Ubuntuを再起動します。 WSLではubuntuの端末で再起動はできません。 いったん×ボタンでウィンドウを終了させた後、powershellを起動して以下を入力します。

    Code Block
    wsl --shutdown

     

  • その後スタートメニューから改めてUbuntu 22.04 .3 LTSを起動します。

  • 以下のコマンドを入力し、正しくバージョン番号が表示されれば成功です。

    Code Block
    docker version

    成功したときの表示例です。

    Code Block
    ipro@PC-HP2208N0101R:~$ docker version
    Client: Docker Engine - Community
     Version:           26.1.4
     API version:       1.45
     Go version:        go1.21.11
     Git commit:        5650f9b
     Built:             Wed Jun  5 11:28:57 2024
     OS/Arch:           linux/amd64
     Context:           default
    Server: Docker Engine - Community
     Engine:
      Version:          26.1.4
      API version:      1.45 (minimum version 1.24)
      Go version:       go1.21.11
      Git commit:       de5c9cf
      Built:            Wed Jun  5 11:28:57 2024
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.6.33
      GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
     runc:
      Version:          1.1.12
      GitCommit:        v1.1.12-0-g51d5e94
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0

...

  • Docker Engineがインストール済みであること

    Code Block
    $ docker --version
    Docker version 23.0.1, build cb74dfc

    インストール出来ていない場合はDocker Engineをインストールしてください。

  • Dockerデーモンが起動中であること
    【systemdを使用している場合】

    Code Block
    $ systemctl status docker
    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
         Active: active (running) since Wed 2023-06-28 08:41:48 JST; 5h 6min ago
    TriggeredBy: ● docker.socket
           Docs: https://docs.docker.com
       Main PID: 1051 (dockerd)
          Tasks: 24
         Memory: 199.9M
            CPU: 5.471s
         CGroup: /system.slice/docker.service
                 └─1051 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    
         (以下略)

    Activeが inactive (dead) になっている場合は、systemctl start docker コマンドでサービスを起動してください。

    【SysVinitを使用している場合】

    Code Block
    $ sudo /etc/init.d/docker status
    * Docker is running

    not running と表示される場合は sudo /etc/init.d/ docker start コマンドでサービスを起動してください。

  • docker buildxがインストールされていること

    Code Block
    $ docker --help | grep buildx
      buildx*     Docker Buildx (Docker Inc., v0.10.5)

    何も表示されていない場合は、 Docker Buildx に従って個別にインストールしてください。

  • qemuがインストールされ、Arm64ビットアプリがクロスビルド可能になっていること
    以下のリストの中に linux/arm64 があることを確認してください。

    Code Block
    $ docker buildx ls
    default * docker
      default default         running v0.11.7-0.20230525183624-798ad6b0ce9f linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/amd64/v4, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6

    linux/arm64 がない場合は、qemuをインストールしてください。

...