
Dockerが何であるのかは以前軽く目を通した。いまさらDocker on Windows~Dockerを使ってみる前にdocker-compose.ymlとDockerfile – My Note
要は、
- image:サービスのイメージディスク
- container:イメージに環境変数?を与えて実際に立ち上げたサービス
- volume:containerを保存しておく場所
- network:container同士をネットワークの中に入れて接続させるとcontainer同士でやり取りができる
- imageを作るに手っ取り早いのはDocker Hubに存在するimageを検索して取ってくることである。
docker pull hogehoge
- 慣れてくると1つ1つのimageをとってきてcontainerを作ってnetworkに入れてつなげて~とするのでははく、Docker Composeを利用してサービスごとにまとめて準備する。
こんな感じでしょうか。これを意識して、WordPressをいくつかの手順で立ち上げてみる。
1. コマンドラインから複数のcontainerを1つのnetwork内で立ち上げる
手順
- WordPressの最新バージョンのimageをDocker Hubで検索して取得
- MySQLの最新バージョンのimageをDocker Hubで検索して取得
- networkを作成
- WordPress, MySQLのイメージにオプション(アカウントやnetwork、バックグラウンドで動かすなどの指定)を与えてを与えてcontainerを作成
docker pull wordpress:latest
docker pull mysql:latest
docker create network test_wp_network
docker run --network test_wp_network --name wordpress_test -d -p 8080:80 wordpress:latest
docker run --network test_wp_network --name mysql_test -d -e MYSQL_DATABASE=wordpress -e MYSQL_ROOT_PASSWORD=test mysql:latest
docker runのオプションは以下の通りです。
// --network:containerをつなげるnetwork
// --name:containerの名前
// -d:バックグラウンドで稼働
// -p:external_port:internal_portをいう形式で外部ポートとcontainerのportを接続させるときに使う。
// 今回の例ではこのおかげでwordpressにはhttp://IPアドレス:8080でアクセスできる
// -e:環境変数を指定
2. DockerをGUIで管理する
Dockerにはportainer.ioというDockerを管理するGUIが存在しているのでそれを使ってみる。
手順
- portainer用のvolumeを用意
- docker runを用いてportainer imageをとってきて起動させる
※docker runを用いた時、手元にimageがない時は公開されているimageをダウンロードしてコマンドを実行してくれる。
create volume portainer_volume
docker run -d -p 9000:9000 --name portainer -v /var/run/docker.sock:/var/run/docker.sock -v portainer_volume:/data portainer/portainer
docker runのオプションは以下の通りです。
// -v: A:B と書くと、(サーバー・dockerで作った)A volumeをcontainer側のB volumeと紐づけるという意味になります。
これでhttp://IPアドレス:9000でPotainerにアクセスできるようになります!