【ubuntu】docker環境の構築

  • 目的
    • ubuntuにdocker環境の構築する
  • 結論
    • 以下のコマンドを実行していくことでdocker環境が作成できる
  • 実施する環境
    • ubuntu@ip-192-168-10-62:~$ cat /etc/os-release
      PRETTY_NAME="Ubuntu 22.04.3 LTS"
      NAME="Ubuntu"
      VERSION_ID="22.04"
      VERSION="22.04.3 LTS (Jammy Jellyfish)"
      VERSION_CODENAME=jammy
      ID=ubuntu
      ID_LIKE=debian
      HOME_URL="https://www.ubuntu.com/"
      SUPPORT_URL="https://help.ubuntu.com/"
      BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
      PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
      UBUNTU_CODENAME=jammy
  • 実行コマンド
    • パッケージのインストール
      • sudo apt update
        sudo apt install ca-certificates curl gnupg lsb-release
    • dockerをインストールするための鍵登録
      • sudo mkdir -p /etc/apt/keyrings
        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
        sudo chmod a+r /etc/apt/keyrings/docker.gpg
    • Dockerパッケージのソースをシステムに追加
      • 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
      • リポジトリ追加を確認した
        • root@ip-192-168-10-62:/home/ubuntu# ll /etc/apt/sources.list.d/docker.list
          -rw-r--r-- 1 root root 110 Jan 13 14:20 /etc/apt/sources.list.d/docker.list
          
    • 再度apt update
      • sudo apt update
        
        35 packages can be upgraded. Run 'apt list --upgradable' to see them.
      • dockerのリポジトリが追加されたからパッケージもアップデートされた。
    • dockerのインストール
      • sudo apt install docker-ce docker-ce-cli containerd.io
      • インストール結果
        • root@ip-192-168-10-62:/home/ubuntu# dpkg -l |grep -e "docker-ce" -e "docker-ce-cli" -e "containerd.io"
          </pre>
          ii containerd.io 1.6.26-1 amd64 An open and reliable container runtime
          ii docker-ce 5:24.0.7-1~ubuntu.22.04~jammy amd64 Docker: the open-source application container engine
          ii docker-ce-cli 5:24.0.7-1~ubuntu.22.04~jammy amd64 Docker CLI: the open-source application container engine
          ii docker-ce-rootless-extras 5:24.0.7-1~ubuntu.22.04~jammy amd64 Rootless support for Docker.
          bash: syntax error near unexpected token `newline'
          root@ip-192-168-10-62:/home/ubuntu#
    • インストール後の確認
      • docker -v
      • バージョンが表示されたらインストールOK
        • root@ip-192-168-10-62:/home/ubuntu# docker -v
          Docker version 24.0.7, build afdd53b
    • dockerの動作確認
      • hello-worldを起動してみる
        • sudo docker run hello-world
        • うまくいけば以下のような内容が表示される
          • ubuntu@ip-192-168-10-62:~$ docker run hello-world
            Unable to find image 'hello-world:latest' locally
            latest: Pulling from library/hello-world
            c1ec31eb5944: Pull complete
            Digest: sha256:4bd78111b6914a99dbc560e6a20eab57ff6655aea4a80c50b0c5491968cbc2e6
            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/
            
            ubuntu@ip-192-168-10-62:~$
            
      • エラーが発生してしまう場合の対応
        • エラー内容
          • ubuntu@ip-192-168-10-62:~$ docker run hello-world
            Unable to find image 'hello-world:latest' locally
            docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
            See 'docker run --help'.
          • エラーの原因
            • curlが通ってないのが原因と判断
              • ubuntu@ip-192-168-10-62:~$ curl -I -k https://registry-1.docker.io/v2/ -o /dev/null -w '%{http_code}\n' -s
                000
        • こちらを参考に名前解決してあげればOK
    • dockerコマンドをrootでなくても実行できるようにする
      • グループ追加
        • sudo groupadd docker
          
      • 自分自身を作成したグループに追加
        • sudo usermod -aG docker $USER
        • 追加されたことを確認
          • ubuntu@ip-192-168-10-62:~$ grep docker /etc/group
            docker:x:999:root,ubuntu
      • ディレクトリの作成と権限変更
        • mkdir /home/$USER/.docker
          sudo chown $USER:$USER /home/$USER/.docker -R
          sudo chmod g+rwx $HOME/.docker -R
      • 動作確認
        • docker images
        • 結果が表示されればOK
          • ubuntu@ip-192-168-10-62:~$ docker images
            REPOSITORY TAG IMAGE ID CREATED SIZE
            hello-world latest d2c94e258dcb 8 months ago 13.3kB
            
  • ちなみに
    • pycharmにdockerプラグインを追加する
      • 参考
      • pycharmのプラグインにて「docker」で検索してインストールする
タイトルとURLをコピーしました