欢迎访问本站,祝大家玩得愉快。

Docker Compose 部署Nginx、DB、Nacos

Docker kany.wang 67℃ 0评论

软件环境

  • OS:Ubuntu Server 16.04.1 LTS 64位
  • Docker:19.03.1
  • Docker Compose:1.24.1

编写配置文件

在前面的文章中我们使用Dockerfile编写了文件,如果物理机重启之后每次我们都要手动处理关联挂你想,比较麻烦。
Docker Compose使用的是docker-compose.yml文件来配置的。所以我们来编写配置文件。

# 版本
version: '3.1'
# 服务配置
services:
  # Nginx配置
  nginx-server:
    # 镜像名称
    image: nginx:latest
    # 容器名称
    container_name: nginx-server
    # 是否开机启动
    restart: always
    # 文件夹映射
    volumes:
      - /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro # ro表示只读,read only
      - /data/nginx/logs:/var/log/nginx
      - /data/nginx/sites:/etc/nginx/conf.d:ro
      - /data/nginx/ssl:/etc/nginx/ssl:ro
      - /data/nginx/html:/usr/share/nginx/html:ro
    ports:
      - "80:80"
      - "443:443"
    # 定义网络
    networks:
      # 加入的网络的名称
      app:
        # ipv4的ip地址
        ipv4_address: 172.18.0.2
  # 数据库配置
  mariadb-server:
    # 镜像名称
    image: mariadb:latest
    # 容器名称
    container_name: mariadb-server
    # 是否开机启动
    restart: always
    # 环境变量
    environment:
      # 配置数据库密码
      - MYSQL_ROOT_PASSWORD:数据库密码
    volumes:
      - /data/mariadb/conf:/etc/mysql/conf.d:ro
      - /data/mariadb/logs:/var/log/mysql
      - /data/mariadb/data:/var/lib/mysql
    ports:
      - "3306:3306"
    # 指定启动顺序
    depends_on:
      - nginx-server
    # 定义网络
    networks:
      # 加入的网络的名称
      app:
        # ipv4的ip地址
        ipv4_address: 172.18.0.3
  # nacos-master
  nacos-mater:
    image: nacos:1.1.3
    # 容器名称
    container_name: nacos-mater
    # 是否开机启动
    restart: always
    # 配置环境变量文件
    env_file:
      - ./env/nacos-ip.env
    # 映射数据卷
    volumes:
      - /data/nacos/cluster1/conf/cluster.conf:/usr/local/nacos/conf/cluster.conf
      - /data/nacos/cluster1/conf/application.properties:/usr/local/nacos/conf/application.properties:ro
      - /data/nacos/cluster1/logs:/usr/local/nacos/logs
      - /data/nacos/cluster1/data:/usr/local/nacos/data
    ports:
      - "8848:8848"
      - "9555:9555"
    # 指定启动顺序
    depends_on:
      - mariadb-server
    # 定义网络
    networks:
      # 加入的网络的名称
      app:
        # ipv4的ip地址
        ipv4_address: 172.18.0.4
  # nacos-slave
  nacos-slave:
    image: nacos:1.1.3
    # 容器名称
    container_name: nacos-slave
    # 是否开机启动
    restart: always
    # 配置环境变量文件
    env_file:
      - ./env/nacos-ip.env
    # 映射数据卷
    volumes:
      - /data/nacos/cluster2/conf/cluster.conf:/usr/local/nacos/conf/cluster.conf
      - /data/nacos/cluster2/conf/application.properties:/usr/local/nacos/conf/application.properties:ro
      - /data/nacos/cluster2/logs:/usr/local/nacos/logs
      - /data/nacos/cluster2/data:/usr/local/nacos/data
    ports:
      - "8849:8848"
    # 指定启动顺序
    depends_on:
      - mariadb-server
    # 定义网络
    networks:
      # 加入的网络的名称
      app:
        # ipv4的ip地址
        ipv4_address: 172.18.0.5

#定义网络组
networks:
  # 网络组名称
  app:
    # 网络的模式
    driver: bridge
    # 配置网络
    ipam:
      driver: default
      config:
        ## ip地址网络 这里宿主机一般会是该网段的 172.17.0.1,所以不要设置自网段为1
        - subnet: 172.18.0.0/24

上面用到的nacos-ip.env文件内容如下:

NACOS_SERVERS=172.18.0.4:8848 172.18.0.5:8848
MYSQL_MASTER_SERVICE_HOST=172.18.0.3
MYSQL_MASTER_SERVICE_PORT=3306
MYSQL_MASTER_SERVICE_DB_NAME=nacos_config
MYSQL_MASTER_SERVICE_USER=root
MYSQL_MASTER_SERVICE_PASSWORD=数据库密码

查看docker的网络使用如下命令:

# 查看目前已有的网络
docker network ls
# 查看目前的网络
docker network inspect <Network Id>
# 删除目前的网络
docker network rm <Network Id>

参考数据

联系方式

  • 小伙伴群:J2EE技术交流

打赏

转载请注明:懒人屋 » Docker Compose 部署Nginx、DB、Nacos

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址