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で制御する方法について