version: "3.9" # Docker for Ubuntu22.04 configuration # - mysql 8.0.23 # - redis 6.2 # -- 配置 ----------------------------- # docker-compose down # docker-compose up -d # 1.首次启动前创建 (MySQL) # mkdir -p /opt/mysql/{data,config} /opt/mysql-files # chmod -R 777 /opt/mysql # 拷贝 my.cnf 配置文件 (MySQL) # * 首次启动,不要带 my.cnf 映射,要先把 my.cnf 文件拷出来 # docker cp mysql8:/etc/mysql/my.cnf /opt/mysql/config # chmod 644 /opt/mysql/config/my.cnf # (保证 my.cnf 必须是文件,不是目录) # 3.首次启动前创建(Redis) # mkdir -p /opt/redis/{data,logs} # chmod -R 777 /opt/redis # 4.首次启动前创建(Nginx) # mkdir -p /opt/nginx/{www,log} # chmod -R 777 /opt/nginx # 拷贝 nginx.conf 配置文件 (Nginx) # docker cp nginx:/etc/nginx/conf.d /opt/nginx # docker cp nginx:/etc/nginx/nginx.conf /opt/nginx/nginx.conf # docker cp nginx:/usr/share/nginx/html /opt/nginx/www/html # ------------------------------------- services: # -- MySQL8.0 ----------------------- mysql8: image: mysql:8.0.23 container_name: mysql8 restart: always environment: MYSQL_ROOT_PASSWORD: fiPxHGFJldDC ports: - "3306:3306" volumes: - /opt/mysql/data:/var/lib/mysql # 首次复制 (docker cp) # - /opt/mysql/config/my.cnf:/etc/mysql/my.cnf:ro - /opt/mysql-files:/var/lib/mysql-files command: - mysqld - --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # -- Redis6.2 ----------------------- redis: image: redis:6.2 # 官方完整版,非 Alpine container_name: redis62 restart: always ports: - "127.0.0.1:6388:6388" # 仅宿主机 127.0.0.1:6388 可访问 volumes: - /opt/redis/data:/data # 数据持久化 - /opt/redis/logs:/logs # 日志外挂 environment: - TZ=UTC # UTC时区 (国内时区: Asia/Shanghai) command: > redis-server --port 6388 --bind 127.0.0.1 --requirepass 123456 --appendonly yes --loglevel warning --logfile /logs/redis.log # -- Nginx -------------------------- nginx: image: nginx:1.26.3 container_name: nginx restart: always ports: - "80:80" - "443:443" volumes: # 首次复制 (docker cp) # - /opt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro # - /opt/nginx/www/html:/usr/share/nginx/html:ro # - /opt/nginx/conf.d:/etc/nginx/conf.d:ro - /opt/nginx/log:/var/log/nginx environment: - TZ=UTC