Docker Composeをやってみた。
Docker Composeを使ってLAMP環境を作ったので自分用のメモ
はじめに
実行時のdockerのバージョンは以下です。
$ docker --version Docker version 1.13.1, build 092cba3
docker-composeのバージョンは以下です。
$ docker-compose --version docker-compose version 1.11.1, build 7c5d5e4
Dockerのインストール
下記サイトからOS別のインストール手順をみて順番に実行していく。
https://docs.docker.com/engine/installation/
Docker Composeのインストール
下記サイトからインストール手順をみて順番に実行していく。
https://docs.docker.com/compose/install/
フォルダ構成
docker ├─ docker-compose.yml
docker-compose.ymlの作成
Docker Composeを使うためにはdocker-compose.ymlを作成します。
今回は、使うイメージをDocker Hubから全部落としてきて使うことにします。
version: '3.0' services: web: image: php:apache ports: - 80:80 links: - db volumes: - "../html:/var/www/html" db: image: mysql:latest environment: - MYSQL_ROOT_PASSWORD=root volumes: - "../mysql:/var/lib/mysql" phpmyadmin: image: phpmyadmin/phpmyadmin:latest links: - db ports: - 8080:80 environment: - PMA_ARBITRARY=1 - PMA_HOST=db - PMA_USER=root - PMA_PASSWORD=root volumes: - "../phpmyamin/session:/session"
パラメータなどはそれぞれのDocker Hubのページに書いてある通りに設定していく。
↓ApacheとPHPのイメージ
https://hub.docker.com/_/php/
↓MySQLのイメージ
https://hub.docker.com/_/mysql/
↓PhpMyAdminのイメージ
https://hub.docker.com/r/phpmyadmin/phpmyadmin/
アクセス
↓Apacheのページ
http://localhost
↓PhpMyAdminのページ
http://localhost:8080
おまけ
Vagrantを使って全自動で立ち上げる。
フォルダ構成
project ├─ docker | ├─ docker-compose.yml | ├─ html | ├─ index.php | ├─ vagrant ├─ Vagrantfile
Vagrantのprovisionでdocker-composeを使うのにはプラグインを入れる必要があるので下記コマンドでインストールします。
$ vagrant plugin install vagrant-docker-compose
vagrant-docker-composeの使い方などはgithubに書いてあります。
https://github.com/leighmcculloch/vagrant-docker-compose
Vagranfileの作成
Vagrant.configure("2") do |config| config.vm.box = "bento/centos-7.3" config.vm.network "forwarded_port", guest: 80, host: 80 config.vm.network "forwarded_port", guest: 8080, host: 8080 config.vm.synced_folder "../html", "/root/workspace/html" config.vm.synced_folder "../docker", "/root/workspace/docker" config.vm.provision :docker config.vm.provision :docker_compose, compose_version: "1.11.1", yml: "/root/workspace/docker/docker-compose.yml" end
これでホストOSのhtmlフォルダにコンテンツを入れればページを見ることができる。
最後に
githubにあげてあります。
github.com