大师架构系列-Docker With Nginx Mysql Redis

经过一段时间的学习和研究,终于把Docker Compose如何快速部署整个基础开发环境给搭建好了。

铁杵磨成针,只要功夫深,相信大家也可以通过每一步的学习,从而把知识掌握。

下面就跟着我的步伐,带你如何快速搭建Docker应用环境。

version: "3.8" # 指定 docker-compose.yml 文件的写法格式
services: # 用来表示compose需要启动的服务 本文件从.env文件读取变量

  redis: # 自定义服务名
    image: redis:${REDIS_IMAGE_TAG:-6.0.8-alpine} # 指定服务所使用的镜像
    container_name: ${REDIS_CONTAINER_NAME:-redis} # docker容器实例名称
    restart: always # 配置重启,表示如果服务启动不成功会一直尝试
    privileged: true # 特权模式,修改系统变量
    environment: # 环境变量定义
      - TZ=Asia/Shanghai
      - author=${AUTHOR:-ucucs}
    ports: # 端口映射,外部访问的端口 不同端口可以如此配置 6379:6380,单独写代表随机端口
      - ${REDIS_PORT:-6379}:6379
    networks: # 网络网段定义
      - frontend
    volumes: # 加载本地目录下的配置文件到容器目标地址下
      - ${REDIS_CNF:-./config/redis/redis.conf}:/usr/local/etc/redis/redis.conf
      - ${REDIS_DATA:-./data/redis/}:/data/
      - ${REDIS_LOG:-./log/redis/}:/var/log/redis/
    command: # 表示以这个命令来启动服务
      /bin/sh -c "echo 65535 > /proc/sys/net/core/somaxconn
      && echo never > /sys/kernel/mm/transparent_hugepage/enabled
      && echo never > /sys/kernel/mm/transparent_hugepage/defrag
      && redis-server /usr/local/etc/redis/redis.conf"

  mysql:
    container_name: mysql
    image: mysql:${MYSQL_IMAGE_TAG:-5.7.31}
    restart: always
    env_file: # 读取指定的环境变量文件
      - ./mysql.env
    environment:
      - TZ=Asia/Shanghai
      - LANG=C.UTF-8
      - MYSQL_INITDB_SKIP_TZINFO=yes
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-ucucs}
      - MYSQL_ROOT_HOST=${MYSQL_ROOT_HOST:-%}
      - MYSQL_USER=${MYSQL_USER:-ucs}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD:-ucspwd}
      - MYSQL_DATABASE=${MYSQL_DATABASE:-ucsdb}
    ports:
      - ${MYSQL_PORT:-3306}:3306
    networks:
      - backend
    volumes:
      - ${MYSQL_CNF:-./config/mysql/my.cnf}:/etc/mysql/conf.d/my.cnf
      - ${MYSQL_DATA:-./data/mysql/}:/var/lib/mysql/
      - ${MYSQL_INIT:-./data/mysql-init/}:/docker-entrypoint-initdb.d/
      - ${MYSQL_LOG:-./log/mysql/}:/var/log/mysql/
    entrypoint:
      bash -c "chown -R mysql:mysql /var/log/mysql && exec /entrypoint.sh mysqld"

  nginx:
    container_name: nginx
    image: nginx:1.19.2
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "80:80"
    volumes:
      - ./config/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./config/nginx/conf.d/:/etc/nginx/conf.d/
      - ./data/nginx/:/usr/share/nginx/html/
      - ./log/nginx/:/var/log/nginx/
    restart: always

networks: # 网络定义
  frontend: # 网络命名
    driver: bridge # 定义网络模式,默认时可忽略 bridge(默认) host none service:[service name] container:[container name/id]
  backend:

 

相信大家可以看到,命令都有相应的文本表示,方便大家入门和学习。

同时,采用环境变量的方式,已经提供基础优化的配置,方便大家快捷搭建出稳定可用的版本。

具体环境变量,请查看源代码里的.env文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要启动MySQLRedisDocker容器,可以按照以下步骤操作: 启动MySQL容器: 1. 拉取MySQL镜像:使用命令`docker pull mysql:5.7`或`docker pull mysql:8`,分别拉取MySQL 5.7和MySQL 8镜像。 2. 运行MySQL容器:使用命令`docker run -d -p 3306:3306 -v E:/DB/MySQL5.7/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='1qaz@WSX3edc' --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci`,该命令会创建一个名为mysql的容器,并将宿主机的数据目录映射到容器内的/var/lib/mysql目录,同时设置MySQL的根密码为'1qaz@WSX3edc'。 启动Redis容器: 1. 拉取Redis镜像:可以在Docker Hub上找到Redis的各个版本号,使用命令`docker pull redis:版本号`来拉取相应版本的Redis镜像。 2. 运行Redis容器:使用命令`docker run -d --name redis redis:版本号`,将版本号替换为你想要启动的Redis版本号。该命令会创建一个名为redis的容器,使用指定的Redis版本。 这样,你就成功启动了MySQLRedisDocker容器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Dockerdocker启动MySQLRedis、Linux等应用](https://blog.csdn.net/qq_45277554/article/details/129292385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker安装启动redisnginxmysql8详解](https://blog.csdn.net/qq_45473439/article/details/117191207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值