二进制dockers-compose
demo
version: '1.0'
services:
php-fpm:
image: php:8.0-fpm # 使用 PHP 8.0 FPM 镜像
container_name: php_fpm_container
volumes:
- /docker/nginx/www:/var/www/html # 映射 PHP 文件目录
networks:
- nginx-mysql-net
nginx:
image: nginx:latest
container_name: nginx_container
ports:
- "81:80" # HTTP 端口
- "444:443" # HTTPS 端口
volumes:
- /docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf # nginx配置文件
- /docker/nginx/conf/site:/etc/nginx/nginx # 配置文件目录
- /docker/nginx/www:/usr/share/nginx/html # 映射静态文件目录
- /docker/nginx/certs:/etc/nginx/certs # SSL 证书目录
networks:
- nginx-mysql-net
depends_on:
- php-fpm
mysql:
image: mysql:8.0
container_name: mysql_container
ports:
- "3307:3306" # 映射宿主机的80端口到容器的80端口
environment:
MYSQL_ROOT_PASSWORD: rootpassword # 设置MySQL root用户的密码
#MYSQL_DATABASE: mydatabase # 创建一个名为mydatabase的数据库
volumes:
- /docker/mysql/mysql-data:/var/lib/mysql # 持久化MySQL数据
networks:
- nginx-mysql-net
redis:
image: redis:latest
container_name: redis_container
ports:
- "6380:6379" # 映射宿主机的6380端口到容器的6379端口
environment:
REDIS_PASSWORD: "" # 设置Redis密码
networks:
- nginx-mysql-net
networks:
nginx-mysql-net:
driver: bridge
# 启动管理容器
docker-compose up # 会自动搜索当前路径下的 docker-compose.yml文件
docker-compose -f 指定文件 up
docker-compose up -d # 后台执行,一般我们看日志输出,不用这个
docker-compose stop # 停止,不会删除容器和镜像
docker-compose down # 停止,并删除关联的容器
docker-compose start # 启动yml文件管理的容器
docker-compose ps # 正在运行的容器
docker-compose images # docker-compose管理的镜像
docker-compose exec yml文件中写的service /bin/bash # 进入到容器内
docker-compose up -d --build # 启动容器但是重新构建镜像,基于重新构建的镜像启动