把docker-compose.yml文件放置在/home/docker目录下。
version: '3'
# 定义三个服务nginx,php,mysql
services:
nginx:
# 依赖php服务,意味着在启动nginx之前先启动php
depends_on:
- php
# nginx镜像的路径
image: registry.cn-hangzhou.aliyuncs.com/centos-bz/nginx
# 容器的/home/docker/nginx目录挂载主机中的/home/docker/nginx目录,
# 这样使nginx容器把网站文件和目录存放到主机目录中,持久化和方便管理
volumes:
- /home/docker/nginx:/home/docker/nginx
# nginx意外退出时自动重启
restart: always # 映射80和443端口
ports:
- "80:80"
- "443:443"
# 容器名称
container_name: nginx
php:
depends_on:
- mysql
image: registry.cn-hangzhou.aliyuncs.com/centos-bz/php-fpm
restart: always
volumes:
- /home/docker/nginx/www:/home/docker/nginx/www
- /home/docker/php:/home/docker/php
container_name: php
mysql:
image: registry.cn-hangzhou.aliyuncs.com/centos-bz/mysql
volumes:
- /home/docker/mysql:/home/docker/mysql
restart: always
# 设置MYSQL_ROOT_PASSWORD环境变量,这里是设置mysql的root密码。这里为root。
environment:
MYSQL_ROOT_PASSWORD: root
container_name: mysql
启动环境
在/home/docker目录执行:
docker-compose up
查看nginx,php,mysql是否正常启动,如果正常,ctrl-c停止,再执行:
docker-compose up -d
这里compose命令就在后台启动了。
执行docker ps查看容器运行状态。
连接问题
容器之间可以通过容器名称来连接,如nginx配置文件中连接php的代码fastcgi_pass php:9000,网站数据库配置文件使用mysql:3306。
日常运维
迁移
比如A主机迁移到B主机。只需要三步。
1.打包A主机的/home/docker目录,传输到B主机相同位置
2.配置B主机docker环境
3.在B主机的/home/docker目录下执行docker-compose up -d
导出导入数据库
把centos.sql.gz数据库文件导入到centos数据库:
gunzip < centos.sql.gz | docker exec -i mysql mysql -uroot -proot centos
把centos数据库导出到centos.sql.gz
docker exec -i mysql mysqldump -uroot -proot centos | gzip > centos.sql.gz
备份
推荐使用ezhttp一键备份设置:
wget centos.bz/ezhttp.zip
unzip ezhttp.zip
cd ezhttp-master
./start.sh










