Versions Compared

Key

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

...

  • 開発用OS :Linux (64bit)

  • ディストリビューション :Ubuntu 2022.04以降04 LTS

開発環境構築手順

...

開発者ライセンスの取得

下記より開発者ライセンスを申請し、取得しておいてください。

お問い合わせ・SDKダウンロード - Development Partner Portal (i-pro.com)

Docker環境の準備

開発PCにDocker Engineをインストールします。出典:Docker Engine インストール(Ubuntu 向け) | Docker ドキュメント (matsuand.github.io)

Info

Windows環境で開発したい場合、本ドキュメントでは推奨外となりますが、Docker Desktop for WIndowsやWSLを利用する方法があります。それらの方法をご利用になる場合はそれぞれのドキュメントをご参照ください。

ここでの手順は下記環境にて実施しています。

OS: Ubuntu 22.04.2 LTS (Jammy Jellyfish)

Docker Engineのバージョン: 23.0.1

Info

プロキシ経由でインターネットに接続されている環境の場合、プロキシサーバーの設定を実施しておいてください。

 

Dockerをインストールする前に、古いバージョンのアンインストールを行います。

Code Block
sudo apt-get remove docker docker-engine docker.io containerd runc
Info

アンインストールしてよい環境かどうか、事前に確認してください。

 

Dockerをインストールできるようにするためのアプリをインストールします。

...

Engineをインストールします。Install Docker Engine on Ubuntu に従って、Docker Engineをインストールします。以下はページの概略を記載します。

  • 念のため旧パッケージをアンインストールします。
    ただし、アンインストールして問題ないパッケージか事前によくご確認ください。削除したことで問題が発生しても責任は負いかねます。

    Code Block
    for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

     

  • apt-getで使用するDocker用レポジトリを追加します。echoから始まる行は4行まとめてコピペしてください。

    Code Block
    # Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install ca-certificates curl

...

 

Dockerの公式GPG鍵を追加します。

...

  • 
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg 

...

  • -o /etc/apt/keyrings/docker.asc
    sudo 

...

  • chmod a+r /etc/apt/keyrings/docker

...

Note

ここでcurlの証明書エラーが出た場合、ca-certificatesが最新ではない、または正しくインストールできていない可能性があります。

sudo apt-get install --reinstall ca-certificates

でca-certificatesを再インストールして直るか、ご確認ください。

 

Dockerの安定版リポジトリをセットアップします。

...

  • .asc
    # Add the repository to Apt sources:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/

...

  • etc/

...

  • apt/keyrings/docker

...

  • .

...

  • asc] https://download.docker.com/linux/ubuntu \
      $(

...

  • . /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

...

 

Dockerエンジンをインストールします。

...

  • 
    sudo apt-get update

...

  • 最新のDocker engineをインストールします。

    Code Block
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

...

  • Do you want to continue? [Y/n] と聞かれたら Y を入力してEnterキーを押してください。

  • インストール後の動作確認です。 

    Code Block
    sudo 

...

  • docker run 

...

 

docker daemonの再起動 またはうまく行かない場合はPC再起動してください。

Code Block
sudo systemctl restart docker

 

docker.sockにグループでの書き込み権限を付与します。

Code Block
sudo chgrp docker /var/run/docker.sock

  

Dockerが使えるかどうかのテストを行います。

...

  • hello-world

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

    Code Block
    ipro@PC-HP2208N0101R:~$ sudo docker run 

...

  • hello-world

...

 

以下のように表示されればインストール成功です。

...

  • 
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    

...

  • c1ec31eb5944: Pull complete

...

  • 
    Digest: sha256:

...

  • d1b0b5888fbb59111dbf2b3ed698489c41046cb9d6d61743e37ef8d9f3dda06f
    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/
    

 成功しなかった場合、下記で成功するか確認してください。

Info

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

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

 

Info

環境によっては、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-

...

ここでPCを再起動します。(必ず再起動を実施してください。)

...

  • 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サービスが自動起動する設定を行います。

    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をプロキシサーバー経由でインターネットにアクセスさせる手順を実施します。プロキシサーバーを使用していない場合は、実施する必要はありません。

  • Dockerクライアントの設定ファイルを作成して以下のように記載します。

    Code Block
    vi ~/.docker/config.json

    記載する内容は以下です。

    Code Block
    {
     "proxies":
     {
       "default":
       {
         "httpProxy": "http://[プロキシサーバーのIPアドレス:ポート]",
         "httpsProxy": "http://[プロキシサーバーのIPアドレス:ポート]"
       }
     }
    }

    特定のIPアドレスだけをプロキシなしで接続したい場合は”noProxy”で設定できます。詳細は プロキシサーバを使うように Docker を設定 — Docker-docs-ja 24.0 ドキュメント をご覧ください。

  • ファイルを保存します。

qemuインストール

コンテナ版追加アプリを作成するために、開発環境にインストールする必要のある、qemuのインストール方法を記載します。

...