Dokerのハンズオン勉強会メモ(2)
Dockerにハンズオン勉強会について引き続き書いていきます。
ハンズオンは下記の2つのQiitaの記事をもとに進めました。
Qiitaの記事の筆者が今回の勉強会のメイン登壇者の方でした。
1つ目の記事は、このブログのDokerのハンズオン勉強会メモ(1)の記事内容を基本的なDockerのコマンド使って実践する手順になっています。ちなみに、バーチャルボックス上にCentOS7.5をインストールした環境を想定された記事となっています。
※自分はCentOS7と聞いていたのでCentOS7.2の環境でやろうとして最初のDockerのインストールで躓きました。。
以下の記事で作成する環境のイメージ図
以下ハンズオンで自分が躓いた箇所2点を記載します。
1.
事象:コンテナ起動後、ブラウザを開くもWordpressのGUI画面につながらない。。
原因:httpd用のポートが空いていなかった。
対処:Virtualboxのポートフォワーディングルールにhttpd用ポート番号を設定する。
あまりバーチャルボックスを触ってこなかったので知らなかったのですが、
ポート変換が必要なくても設定が必要だったみたいです。
2.
事象:リポジトリを確認する工程でsearchコマンドの実行結果に何も出力されない。
※以下実際のコマンド実行結果
[root@localhost ~]# docker search アカウント名
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
[root@localhost ~]#
原因:不明
対処:ブラウザからDockerHubにログインし、確認したところ作成できているように見えたので、そのまま次の工程に進む。※その後の手順でも問題なく最後まで実践できました。
2つ目の記事は上記の手順(1つ目の記事)で作成した環境をアプリごとにコンテナを分けてDocker composeを使用して連携させる環境を作る手順になっています。※Docker Composeの説明は下記記載
1つ目の環境が作成できた環境であれば特に問題なく実施できると思います。
以下の記事で作成する環境のイメージ図
Docker Composeとは
複数のコンテナで構成されるアプリケーションについて、Dockerイメージのビルドや各コンテナの起動・停止などをより簡単に行えるツールです。
コンテナの数が増えるたびに他の環境で使用する際に、Dockernビルドやコンテナ起動のオプションなどのミスが発生する可能性があります。そうなると、他の環境でも同じ構成で動かせるというDockerのメリットが損なわれてしまいます。そこで、Docker Composeを使います。
Dockerビルドやコンテナ起動オプションなどを含め、複数のコンテナの定義をymlファイルに書き、それを利用することで、一つの簡単なコマンドで複数のコンテナを管理できるようになるツールです。
Docker Composeの動作のイメージ図
DockerflieとDocker Composeの違いは?
私がDocker Composeの話を聞いたとき、「Dockerfileも自動でコンテナを作成してくれるツールではないのか、違いがわからない」と感じたので少し調べました。以下あくまで個人の見解です。
使えるコマンドやオプションが違うという点もあるようですが、
・Dockerfileは1つのコンテナを作る際に使用する。
・Docker Composeは複数のコンテナをまとめ利用するときに使用する。
という使い分けができるものだとわかりました。
つまり、コンテナの構築時にはDockerfileを使用し、複数のコンテナを作成、管理する場合はDockerComposeの方が便利であるということだと思います。
また、今回の2つめの手順ではdocker-compose.ymlにイメージを指定してコンテナ作成していますが、そのイメージをしている個所でDockerfileを指定することもできるようです。
最後に、コンテナ技術を学習するのに便利なサイトを教えていただいたので、紹介だけしておきます。無料ですのでぜひご活用ください。
ハンズオン勉強会については以上です。
なんでもそうですが調べると調べただけわからないことが増えてきますね。。