環境構築・設定
ここでは、本ゼミナールで使用する実験環境の構築と設定を行います。 具体的には、ホスト 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 つになります。それぞれのコマンドの意味を簡単に説明します。
-
古いバージョンのアンインストールはは、念の為やるものになります。たぶん、皆さんの環境には何も入っていないので、「引数がありません」みたいなメッセージが出ても大丈夫です。
- Ubuntuの場合:
sudo apt remove docker ...
- CentOSの場合:
sudo yum remove docker ...
- Ubuntuの場合:
-
パッケージマネージャに 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
-
-
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
- Ubuntuの場合:
-
Docker デーモンの起動: Start Docker
- Ubuntuの場合:特に必要なし
- CentOSの場合:
sudo systemctl start docker
-
Docker のインストール確認: Verify that Docker Engine is installed correctly by running the hello-world image
- CentOSの場合:
sudo docker run hello-world
- CentOSの場合:
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グループに自分を追加します。コマンド実行後は、マシンからログアウトしてください。
docker
グループに自分のアカウントを追加sudo gpasswd -a $(whoami) docker
docker
グループを追加sudo chgrp docker /var/run/docker.sock
dockerd
(docker の daemon)を再起動sudo service docker restart
dockerd
が CentOS 起動時に自動起動するように設定を変更sudo systemctl enable docker.service sudo systemctl enable containerd.service
最後に ゲストOS からログアウトします。ログアウトは、CentOS の画面の右上の電池マークから自分のアカウント名をクリックすると出てきます。
あらためてログインして、以下のコマンドが実行できるかを確認してみてください。
docker ps -a
チェックポイント:できたら見せてください