# apt install docker.compose #快速編排 .yml
# Docker 命令自動補全
# 安裝 bash-completion
# apt install bash-completion
# sudo curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
# source /etc/bash_completion.d/docker-compose
# 安裝二進制包
# curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod a+x /usr/local/bin/docker-compose
# curl -L https://github.com/docker/compose/releases/download/1.25.0/run.sh -o /usr/local/bin/docker-compose-run.sh
# chmod a+x /usr/local/bin/docker-compose-run.sh
# 製作編排文件 yml yaml,建立工作目錄
# cd /data/docker/docker-compose/webapp/
# vim docker-compose.yaml
# 常用命令(cd到編排文件目錄中)
# docker-compose ps # 列出項目中目前的所有服務容器
# docker-compose stop [containerName/containerID] # 停止正在運行的服務容器【指定容器】
# docker-compose start [containerName/containerID] # 啓動服務容器【指定容器】
# docker-compose restart [containerName/containerID] # 重啓項目中的服務【指定容器】
# docker-compose pause [containerName/containerID] # 暫停一個服務容器
# docker-compose unpause [containerName/containerID] # 恢復處於暫停狀態中的服務
# docker-compose rm [-f:強制直接刪除] [-v:掛載數據卷] # 刪除所有(停止狀態的)服務容器。
# docker-compose down [ -rmi all:local] [-v:掛載數據卷] # 停用移除所有容器以及網絡相關
# docker-compose logs # 查看服務容器的輸出
# docker-compose build #
# docker-compose create [containerName] # 爲服務創建容器
# docker-compose exec #
# dokcer-compose config [-q:只驗證不輸出] # 驗證並查看compose文件配置
# docker-compose pull # 拉取服務依賴的鏡像
# docker-compose push # 推送服務依賴的鏡像
# docker-compose run # 在指定服務容器上執行一個命令 docker-compose run ubuntu ping www.baidu.com
# docker-compose kill # 通過發送SIGKILL信號來強制停止服務容器 docker-compose kill -s SIGINT
# version:[-], services:[-], networks[-]
# 運行 Compose
# sudo docker-compose up
# -f:指定compose模板文件 up: -d:在後臺運行服務容器
# 使用docker-compose 建 PHP 站點
# sudo docker-compose -f docker-compose.yaml up -d
# docker-compose.yml---------------------------------------------------------------------------------------------------------------------------
version: '2'
services:
nginx:
depends_on:
- php
- mysql
- redis
image: nginx
ports:
- "80:80"
container_name: "mynginx"
networks:
- front
volumes:
- /data/www/html:/var/www/html # 站點源碼
- /data/nginx/conf/conf.d:/etc/nginx/conf.d # 站點配置 www.conf
php:
image: php:5.6-fpm
ports:
- "9000:9000"
container_name: "phpfpm"
networks:
- front
- backend
#command:
#- /bin/bash
#- -c
#- |
# cd /usr/local/bin
# docker-php-ext-install pdo_mysql
# docker-php-ext-install mysql
volumes:
- /data/www/html:/var/www/html # 站點源碼
- /data/php/php.ini:/usr/local/etc/php/php.ini # PHP配置
mysql:
image: mysql:5.6
ports:
- "3306:3306"
container_name: "mysql"
restart: always
command: --default-authentication-plugin=mysql_native_password
networks:
- backend
volumes:
- /data/mysql/sqlinit:/etc/mysql/sqlinit # mysql 初始化
- /data/mysql/data:/var/lib/mysql # mysql 數據庫文件
#- /data/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
environment:
- MYSQL_DATABASE=online
- MYSQL_ROOT_PASSWORD=123456
redis:
image: redis:3.2
ports:
- "6379:6379"
container_name: "redis"
restart: always
networks:
- backend
volumes:
- /data/redis:/data # redis 數據文件
command: redis-server --appendonly yes
networks:
front:
driver: bridge
backend:
driver: bridge
------------------------------------------------------------------------------------------------------------------------------------------------------
# 因爲 PHP 鏡像版本的問題,必須對 PHP 容器進行安裝插件支持,如下mysql連接,
# 爲 PHP 容器安裝 PDO Mysql
# 進入容器 docker exec -it php:5.6-fpm bash
# cd /usr/local/bin
# docker-php-ext-install pdo_mysql
# docker-php-ext-install mysql
# docker restart php:5.6-fpm