# 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