コンテンツにスキップ

環境構築・設定

ここでは、本ゼミナールで使用する実験環境の構築と設定を行います。 具体的には、ホスト OS の上でホスト OS 型仮想化技術ソフトウェアをインストールし、そのうえでゲスト OS をインストールします。 さらに、インストールしたゲスト OS 上で、コンテナ型仮想化技術ソフトウェアをインストールします。

本資料が想定するソフトウェアとバージョンは以下のとおりです。
必要に応じて、ダウンロードしてください。

  • ホスト OS 型仮想化技術ソフトウェア: Oracle VM VirtualBox (VirtualBox-6.1.34-150636-Win.exe など。必ず最新版をインストールしてください)
  • ゲスト OS: Ubuntu 22.04
  • コンテナ型仮想化技術ソフトウェア: Docker

注意事項

情報処理実習 1 など、別の講義ですでに VirtualBox 上に Ubuntu/CentOS をインストールしている場合は、そちらを使ってください。また、「ゲストOSにDockerをインストール」に進んでください。

ゲストOSにDockerをインストール

ここからは、ゲストOS上に Docker をインストールします。

端末(コンソール)を利用して作業を行いますので、端末を起動してください。

CentOS の場合は、デスクトップの左上右クリックし"端末"をクリックしてください。

インストール

Dockerの公式ホームページの説明に従って、以下の要件でインストールしてみてください。

  • ゲストOS:Ubuntu (64bit版)
  • 公式リポジトリを使用(Set up and install Docker Engine from Docker's apt repository.)
  • Docker の最新版をインストール
  • インストールの完了は sudo docker run hello-world で確認

各コマンドの意味

インストールに利用したコマンドは大きく以下の 4 つになります。それぞれのコマンドの意味を簡単に説明します。

  1. 古いバージョンのアンインストールはは、念の為やるものになります。たぶん、皆さんの環境には何も入っていないので、「引数がありません」みたいなメッセージが出ても大丈夫です。

    • Ubuntuの場合:sudo apt remove docker ...
    • CentOSの場合:sudo yum remove docker ...
  2. パッケージマネージャに Docker のリポジトリを登録: Install using the repository

    • Ubuntuの場合(後半省略)

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

    • CentOSの場合

      sudo yum install -y yum-utils
      sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      

  3. Docker のインストール: Install the latest version of Docker Engine and containerd, or ...

    • Ubuntuの場合:sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    • CentOSの場合:sudo yum install docker-ce docker-ce-cli containerd.io
  4. Docker デーモンの起動: Start Docker

    • Ubuntuの場合:特に必要なし
    • CentOSの場合:sudo systemctl start docker
  5. Docker のインストール確認: Verify that Docker Engine is installed correctly by running the hello-world image

    • CentOSの場合:sudo docker run hello-world

Dockerを一般ユーザーで実行する

Docker コマンドを実行しようとしたとき、以下のメッセージでコマンドが実行できないことがあります。 これに対処するために、一般ユーザーでも Docker コマンドを実行できるように、dockerグループに自分を追加します。 この内容に相当する内容が、公式サイトのRun the Docker daemon as a non-root user (Rootless mode) | Docker Docs, Linux post-installation steps for Docker Engine | Docker Docsに載っています。

$ docker pull hello-world
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json: dial unix /var/run/docker.sock: connect: permission denied

以下の一連のコマンドを実行して、dockerグループに自分を追加します。コマンド実行後は、マシンからログアウトしてください。

  1. dockerグループに自分のアカウントを追加
    sudo gpasswd -a $(whoami) docker
    
  2. dockerグループを追加
    sudo chgrp docker /var/run/docker.sock
    
  3. dockerd (docker の daemon)を再起動
    sudo service docker restart
    
  4. dockerdが CentOS 起動時に自動起動するように設定を変更
    sudo systemctl enable docker.service
    sudo systemctl enable containerd.service
    

最後に ゲストOS からログアウトします。ログアウトは、CentOS の画面の右上の電池マークから自分のアカウント名をクリックすると出てきます。

あらためてログインして、以下のコマンドが実行できるかを確認してみてください。

docker ps -a

チェックポイント:できたら見せてください