docker安装nacos
1.安装nacos
创建本地木伦`

# 1. 创建本地挂载目录并赋予权限(避免容器内权限报错)
mkdir -p /data/nacos/{conf,logs,data}
chmod -R 777 /data/nacos

# 2. 启动 Nacos 3.2.3 容器
docker run --name nacos \
    -e MODE=standalone \
    -e NACOS_AUTH_TOKEN=$(openssl rand -base64 32) \
    -e NACOS_AUTH_IDENTITY_KEY=nacos \
    -e NACOS_AUTH_IDENTITY_VALUE=nacos \
    -p 8080:8080 \
    -p 8848:8848 \
    -p 9848:9848 \
    -d nacos/nacos-server:v3.2.3

# 3. 将容器内的核心配置、日志、数据目录复制到宿主机
docker cp nacos:/home/nacos/conf /data/nacos/
docker cp nacos:/home/nacos/logs /data/nacos/
docker cp nacos:/home/nacos/data /data/nacos/

# 4. 停止并删除临时容器
docker stop nacos && docker rm nacos

创建数据库

#1.将 SQL 脚本复制到 MySQL 容器
docker cp /data/nacos/conf/mysql-schema.sql mysql:/opt/mysql-schema.sql

#2.在 MySQL 中创建数据库
docker exec -it mysql bash

#3.登录数据库
mysql -u root -p

#4.创建数据库
CREATE DATABASE IF NOT EXISTS nacos_config 
DEFAULT CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

USE nacos_config;
EXIT;

#5.执行sql语句
mysql -u root -p nacos_config < /opt/mysql-schema.sql

#6.验证是否成功
mysql -u root -p nacos_config -e "SHOW TABLES;"

(1)在nacos的配置文件中mysql的配置文件都是占位符号,可以通过-e直接配置,也可以修改配置文件application.properties,改为自己的mysql

spring.sql.init.platform=mysql

db.num=1
db.url.0=jdbc:mysql://你的MySQL_IP:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
db.user.0=你的MySQL用户名
db.password.0=你的MySQL密码

在这里插入图片描述
重新运行

docker run -d \
  --name nacos-standalone \
  -e MODE=standalone \
  -e NACOS_AUTH_TOKEN=$(openssl rand -base64 32) \
  -e NACOS_AUTH_IDENTITY_KEY=nacos \
  -e NACOS_AUTH_IDENTITY_VALUE=nacos \
  -p 8080:8080 \
  -p 8848:8848 \
  -p 9848:9848 \
  -v /data/nacos/conf:/home/nacos/conf \
  -v /data/nacos/logs:/home/nacos/logs \
  -v /data/nacos/data:/home/nacos/data \
  --restart=always \
  nacos/nacos-server:v3.2.3

(2)直接重新运行

 #-e 下面这些就是用来替换配置文件里 ${...} 占位符的 
docker run -d \
  --name nacos-standalone \
  -e MODE=standalone \
  -e NACOS_AUTH_TOKEN=$(openssl rand -base64 32) \
  -e NACOS_AUTH_IDENTITY_KEY=nacos \
  -e NACOS_AUTH_IDENTITY_VALUE=nacos \
  -e SPRING_DATASOURCE_PLATFORM=主机ip \
  -e MYSQL_SERVICE_HOST=host.docker.internal \
  -e MYSQL_SERVICE_PORT=3306 \
  -e MYSQL_SERVICE_USER=root \
  -e MYSQL_SERVICE_PASSWORD=你的MySQL密码 \
  -e MYSQL_SERVICE_DB_NAME=nacos_config \
  -p 8080:8080 \
  -p 8848:8848 \
  -p 9848:9848 \
  -v /data/nacos/conf:/home/nacos/conf \
  -v /data/nacos/logs:/home/nacos/logs \
  -v /data/nacos/data:/home/nacos/data \
  --restart=always \
  nacos/nacos-server:v3.2.3

(3)使用docker compose运行

services:
  mysql:
    image: mysql:8.0.36
    container_name: mysql
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 密码
      TZ: Asia/Shanghai
    volumes:
      - /data/mysql/conf/my.cnf:/etc/mysql/my.cnf:ro
      - /data/mysql/data:/var/lib/mysql
      - /data/mysql/log:/var/log/mysql
    networks:
      - nacos-network

  nacos:
    image: nacos/nacos-server:v3.2.3
    container_name: nacos-standalone
    restart: always
    ports:
      - "8080:8080"
      - "8848:8848"
      - "9848:9848"
    environment:
      MODE: standalone
      # 固定 Token(避免重启后变化)
      NACOS_AUTH_TOKEN: "jYxWUerWsTZQRHV3kGLXo3MfLnB48jcNNRBv1/3S99s="
      NACOS_AUTH_IDENTITY_KEY: "nacos"
      NACOS_AUTH_IDENTITY_VALUE: "nacos"
      # MySQL 数据源配置
      SPRING_DATASOURCE_PLATFORM: mysql
      MYSQL_SERVICE_HOST: mysql  # 使用服务名,而不是 host.docker.internal
      MYSQL_SERVICE_PORT: 3306
      MYSQL_SERVICE_USER: root
      MYSQL_SERVICE_PASSWORD: mysql密码
      MYSQL_SERVICE_DB_NAME: nacos_config
      # 时区
      TZ: Asia/Shanghai
    volumes:
      - /data/nacos/conf:/home/nacos/conf
      - /data/nacos/logs:/home/nacos/logs
      - /data/nacos/data:/home/nacos/data
    depends_on:
      - mysql
    networks:
      - nacos-network

networks:
  nacos-network:
    driver: bridge

更多推荐