1.Docker Composeを試してみよう
docker-compose.yamlは、compose.yamlでも良いらしいが、若干古い互換環境だとファイル指定が必要なことがあるらしいので今回はdocker-compose.yamlで記述してみる。
1-1 はじめの一歩
適当なフォルダを作成して以下のようなdocker-compose.yamlファイルを作成する。さすがにGetting-Startedはお腹いっぱいなので、httpdから始める。WSL環境の場合は特にバージョンも書かなくて良いらしい。(書くと警告が出る)
#version: '3'
services:
httpd:
image: httpd
ports:
- "8080:80"
特に気づいたこともないがportsは8080を指定した。起動する際はdocker compose up -dでバックグラウンドで起動する
docker compose up -d
起動したら http://localhost:8080 で初期画面を見ることができる。起動したかどうかはdocker ps -aで確認することができる
docker ps -a
---表示例---
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
748f05d8b371 httpd "httpd-foreground" 4 minutes ago Up 4 minutes 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp chap03-httpd-1
1-2 ボリュームの作成
docker-compose.yamlを以下のように書き換える。
#version: '3'
services:
httpd:
image: httpd
ports:
- "8080:80"
volumes:
- ./htdocs:/usr/local/apache2/htdocs
まあ、特に難しいところもないが、./htdocsはWindows側のフォルダなのでhtdocsフォルダをPS7などで作っておく必要がある。あとはXAMPPやいつも使っているCentOSとhtdocsの場所が異なっているぐらいかな。(/usr/local/apache2/htdocsはLinux側のディレクトリ)
mkdir htdocs
notepad index.html
余談ですが、Amazonの書評を見るとLinuxが初めて、Windowsのコマンドプロンプトも知らないという人だとここまで来るのに一苦労みたい。(ちょっとこのテキストはDockerのコマンド部分を端折りすぎかも)もうちょっとコマンドの練習をしたいという方は以下が参考になるかもしれません。
2-3 実験
index.htmlを以下のように編集して、コンテナの再立ち上げをしてみよう
docker
volume
test!!!
#downが停止でupが開始
docker compose down
docker compose up

あまりにもしょぼいのでindex.htmlは適当に書き換えて遊ぶとよさそうだ。
2-4 コンテナの探検
docker execでコンテナ内に入れるので中身を確認してみることにする。
docker ps -a
#表示されたコンテナIDかコンテナNAMEで入る
CONTAINER ID IMAGE (中略) NAMES
209ccc4hoge httpd chap03-httpd-1
#上記の場合209ccc4hogeかchap03-httpd-1
docker exec -it c209ccc4hoge /bin/bash
htdocsに移動してindex.htmlの中身を確認する
root@209ccc4hoge:/usr/local/apache2# cd htdocs/
root@209ccc4hoge:/usr/local/apache2/htdocs# cat index.html
docker
volume
test!!!
確かに先ほど書いたindex.htmlになっているのが分かる
例えば以下のように書き換えてみると即時反映される(おもしろい)
<html>
<head>
<title>docker test</title>
</head>
<body>
<h2>Docker html test works!</h2>
</body>
</html>

キリが良いのでここまでにして、次回はもう少し先まで読み進める
次の記事
前の記事