docker安装nacos
·
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
更多推荐
所有评论(0)