09-1.部署Nacos

微服务环境必备Nacos,无论是本地测试环境,还是生产环境,使用Docker部署都是非常方便的,可以极大程度的避免环境污染,以及可以快速的卸载和配置
另外,使用Docker容器化部署并不会像虚拟机浪费很多资源。故在环境部署时,优先选用Docker部署。

一、通过docker-compose部署Nacos2.2.2单机版

1. 创建Docker网络

docker network create [dev_net] #[括号内网络名称]
git clone https://github.com/nacos-group/nacos-docker.git

2. 部署Mysql

services:
  mysql:
    #mysql服务节点
    image: mysql:5.7 #mysql镜像,如果镜像容器没有会去自动拉取
    container_name: mysql #容器的名称
    networks:
      - dev_net
    deploy:
      resources:
        limits:
          memory: 1G
    command:
      #构建容器后所执行的命令
      --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --lower-case-table-names=1 #忽略数据表明大小写
    restart: no #跟随docker的启动而启动
    environment:
      MYSQL_ROOT_PASSWORD: root #设置root帐号密码
    ports:
      - 3306:3306
    volumes:
      - ./mysql/data:/var/lib/mysql #数据文件挂载
      - ./mysql/conf.d:/etc/mysql/conf.d #配置文件挂载
      - ./mysql/log:/var/log/mysql #日志文件挂载
networks:
  dev_net:
    external: true

3. 部署Nacos

services:
  nacos:
    image: nacos/nacos-server:v2.2.2
    container_name: nacos
    networks:
      - dev_net
    restart: no
    ports:
      - 8848:8848
      - 9848:9848
      - 9849:9849
    environment:
      TZ: Asia/Shanghai
      MODE: standalone
      SPRING_DATASOURCE_PLATFORM: mysql
      #加入同一个网络后可以直接使用容器name来通信
      MYSQL_SERVICE_HOST: mysql
      #直接连接容器端口,不是映射到宿主机的端口
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: root
      MYSQL_SERVICE_DB_NAME: nacos
      MYSQL_SERVICE_DB_PARAM: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    volumes:
      - ./logs/:/home/nacos/logs
networks:
  dev_net:
    external: true

nacos2.2.2版本需要开启权限认证,修改init.d文件夹下的application.properties 的 nacos.core.auth.enabled,将false改成true即可

4. 执行docker-compose

将上面两个yaml文件放到两个目录下分别执行一下命令

docker-compose up -d

贴一下文件夹路径
nacos

作者:何贤刚  创建时间:2024-03-11 20:37
最后编辑:何贤刚  更新时间:2024-05-12 22:20