こんにちは、サイト管理者のまつみんです。
弊社のクラウドサービスの運用とアプリケーションの開発で毎日お世話になっているコンテナ技術なのですが、仮想化技術(Hypervisor)がそうであったようにコンテナ技術(k8s)も身近な存在になると思うので、参考になればと思います。
本日は、便利なDocker-composeについて解説したいと思います。
Docker-composeとは?
一般的にアプリケーション環境は複雑であり、単体のサーバーやサービスで完結しないと思います。実際は複数のサービスが起動していて、データベース連携しているはずです。開発を進めるためには同様の環境が必要になりますが、その環境を用意するのに数日から数時間も浪費したくないと思います。Docker-composeならその課題を解決することができます。
コマンド1行で開発環境を展開して使う・消す(Dev-ops)を好きなだけ繰り返すことができます。わかりやすい方がいいと思うので、Wordpress+mysqlを展開してみたいとおもいます。Docker環境は既にある前提で進めます。
1. docker-compose.yml (YAML)の作成
$mkdir wp
$cd wp
$vi docker-compose.yml
$
2. ymlの中身 (mysql + wordpressを展開します)
それぞれの環境により若干修正が必要ですので参考レベルでお願いします。
version: '3'
services:
db:
image: mysql:5.6
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
image: wordpress:latest
depends_on:
- db
ports:
- "8080:80"
restart: always
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data:
3. YAMLをDockerに読み込ませてwp+mysql環境を展開してみましょう。
$cd wp
$docker-compose up -d
$
4. コンテナの確認
wpとmysqlが起動しています。
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ffec6355ce2 wordpress:latest "docker-entrypoint.s…" 10 seconds ago Up 9 seconds 0.0.0.0:8080->80/tcp test_wordpress_1
57612241500e mysql:5.6 "docker-entrypoint.s…" 10 seconds ago Up 9 seconds 3306/tcp test_db_1
5. wpへのアクセス
それでは、https://localhost:8080でアクセスしてみましょう。
WP環境が展開されました。
6.Composeの(停止・再起動・削除)
$docker-compose stop (停止)
$docker-compose restart (再起動)
$docker-compose down (削除)
まとめ
IIJ America Incでは、クラウドサービスの提供からお客様のシステム運用のお手伝いをいたします。クラウド導入やシステム更新・移行プロジェクトなどのご相談も承っております。無料相談のご予約は Sales@iij-america.com またはこちらのWebフォームまでお問い合わせください。
Comments