Dockerによるコンテナ体験(要仮想マシン) ( 関連 : 7.8 / 7.9 )

Docker および Docker Compose の体験をここでは行います。

VirtualBoxやUTMなどの仮想マシン管理環境を使わない場合は、Docker Desktopによるコンテナ体験を行なってください。

前提

Ubuntu 20.04 / Ubuntu 22.04による仮想マシンを構築し、仮想マシンのユーザ名が、user1 となっているものとします。ユーザ名は各自で読み替えてください。

Docker(Docker Engine)のインストール

Docker ( Docker Engine )をインストールするサーバーにSSH接続を行い、以下のコマンドを実行する。Macの場合は、ターミナルアプリでSSH接続を行う。Windowsの場合は、TeraTermがSSH接続によく使われる。

下記は、Ubuntu 20.04 / Ubuntu 22.04 を使用した場合。次のコマンドを一行ずつコピー&貼り付けを行って実行。

curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh

sudoなしでDockerを実行できるにするために、次のコマンドを実行する。

getent group docker sudo gpasswd -a $USER docker

GUI環境を使っていない場合

一度ログアウト

exit

再度SSH接続を行います。

GUI環境を使っている場合

GUI環境を使っている場合は、再起動してください。

動作確認

ローコードで使えるデータ分析ツールのMetabaseを用いて、コンテナの起動、停止、削除を確認する。コンテナの起動には、-p で指定するポート番号が使われていないことが前提となるので、複数のコンテナを同時起動する場合やハイパーバイザー型仮想マシンと混在する場合は注意すること。

コンテナの起動

コンテナのもとになるコンテナイメージ未取得の場合は、docker run で指定したコンテナイメージの取得(pull)も自動で行う。

実行結果例 ( 人によって表示される値は異なります。)

Webブラウザで、http://localhost にアクセスし、Metabaseの初期設定画面が表示されることを確認する。コンテナの起動時、初めて利用するコンテナの場合は、コンテナイメージがダウンロードされ、コンテナ起動時にコンテナIDが発行される。

コンテナの確認

実行結果例 ( 人によって表示される値は異なります。)

コンテナの停止

metabaseは、コンテナの起動時に --name で指定したコンテナ名になります。

実行結果

コンテナの確認

実行結果

コンテナの削除

metabaseは、コンテナの起動時に --name で指定したコンテナ名になります。

実行結果

コンテナの確認

実行結果

このように、決まったパターンにもとづくコマンドを実行するだけで、簡単にサーバーの起動や停止、削除を実行することができる。

Docker Composeのインストールと動作確認

インストール

Docker Engineをインストールする際に、まとめてDocker Composeもインストールされるため、Docker Compose単体のインストールは不要です。

Docker Composeの動作確認

ここでは、様々なアプリケーションをミドルウェアとともに一括で導入できるBitnamiから、Redmine向けの定義ファイル(yml形式)をダウンロードし、実行する。

docker-compose up -d を実行するには、コマンドを実行するディレクトリに、定義ファイル(docker-compose.yml)があることが条件。

実行結果

Webブラウザで、http://localhost(http://Dockerを実行している仮想マシンの固定IPアドレス , 例 http://192.168.99.10)にアクセスすると、Redmineの画面が表示される。右上の「ログイン」に移動し、ユーザ名 user , パスワード bitnami1 でログインできます。<< docker-compose.yaml で使用しているRedmineコンテナのバージョンアップにより、ユーザー名とパスワードが変わっていることに注意。教科書作成時点では、Redmine 4 でしたが、2023年5月現在は、Redmine 5 になっている。
初回ログインでパスワードを変更が求められるので、画面指示に従って操作することで、 Redmineを使用可能となる。

Redmine の使い方は、https://redmine.jp/tech_note/first-step/ を参照のこと。

Docker Composeで起動したコンテナ群の停止と終了

1つのコンテナだけであれば、docker stop コマンドを実行すれば良いのですが、複数のコンテナを制御するDocker Composeでは、docker-compose.yml があるディレクトリにて次のコマンドを実行する。

停止:コンテナを停止

実行結果

コンテナの状況の確認する

実行結果

削除 : コンテナとコンテナ間を結ぶネットワークを削除

コンテナの状況の確認する

実行結果

定義ファイルの確認

curl コマンドで取得したDocker Composeの定義ファイル「docker-compose.yml」を確認するには、次のコマンドを実行する。

実行結果

mariadbは、MySQL派生のデータベース管理システムのこと。mariadb用のデータベースのユーザー名とパスワード、ホスト名を用いて、mariadbのコンテナイメージとRedmineのコンテナイメージの2つを起動するように記述されている。Docker Composeを使うことで、複数のコンテナを一括で制御することができる。

関連資料

  • コンテナ << コンテナイメージの作成方法、作成したコンテナをDocker Composeで制御する方法について