上一篇利用 不同的命令來構建 nginx,mysql,php鏡像 和 容器。 這樣做比較麻煩,也很容易出錯,當然可以寫入 sh腳本來執行。但是可以通過 docker-compose 來達到效果,管理起來更加簡單方便。
docker-compose安裝
github地址:https://github.com/docker/compose
curl -L https://github.com/docker/compose/releases/download/1.13.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
目錄結構
lemon@lemon:~/docker$ tree . ├── docker-compose.yml ├── mysql │ └── dockerfile ├── nginx │ ├── conf │ │ ├── nginx.conf │ │ └── vhost │ ├── dockerfile └── php7 ├── conf │ └── php.ini └── dockerfile
編寫yml文件
version : '3' services : mysql : build : context : ~/docker/mysql dockerfile : dockerfile ports : - "3306:3306" volumes : - ~/docker/mysql/data:/var/lib/mysql #初始密碼 environment : - MYSQL_ROOT_PASSWORD=123456 container_name : mysql restart : always php7 : build : context : ~/docker/php7 dockerfile : dockerfile ports : - "9000:9000" volumes : - ~/web:/usr/local/nginx/html - ~/docker/php7/conf/php.ini:/usr/local/php7/lib/php.ini:ro container_name : php7 links : - mysql restart : always nginx : build : context : ~/docker/nginx dockerfile : dockerfile ports : - "80:80" - "433:433" volumes : - ~/docker/nginx/logs:/usr/local/nginx/logs - ~/web:/usr/local/nginx/html - ~/docker/nginx/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf:ro - ~/docker/nginx/conf/vhost:/usr/local/nginx/conf/vhost:ro container_name : nginx links : - php7 restart : always
運行命令自動構建容器
sudo docker-compose up -d
查看狀態
lemon@lemon:~/docker$ sudo docker-compose ps Name Command State Ports -------------------------------------------------------------------------------------------------- mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp nginx /usr/local/nginx/sbin/ngin ... Up 0.0.0.0:433->433/tcp, 443/tcp, 0.0.0.0:80->80/tcp php7 /usr/local/php7/sbin/php-f ... Up 0.0.0.0:9000->9000/tcp
具體文件查看地址:https://github.com/zhaocong222/docker-lnmp