Docker Compose 部署 Nacos
1. 创建初始化 MySQL 的 SQL 文件
1.1. MySQL Schema
https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/mysql-schema.sql
1.2. 创建 Nacos 用户
CREATE USER 'nacos'@'%' IDENTIFIED WITH mysql_native_password BY 'nacos';
GRANT ALL PRIVILEGES ON nacos.* TO 'nacos'@'%';
FLUSH PRIVILEGES;
2. 创建相关的目录
# 1. 创建目录
mkdir -p logs mysql/{conf,data,logs,initdb}
# 2. 将 MySQL schema 和创建用户的 SQL 文件移动到 mysql/initdb
cp mysql-schema.sql mysql-user.sql mysql/initdb
3. 创建 docker-compose.yml
services:
nacos:
image: nacos/nacos-server:v2.5.0
container_name: nacos
restart: always
depends_on:
- mysql
networks:
- nacos-network
environment:
- TZ=Asia/Shanghai
- PREFER_HOST_MODE=hostname
- MODE=standalone
- JVM_XMX=1g
- JVM_XMS=1g
- TOMCAT_ACCESSLOG_ENABLED=false
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=nacos
- MYSQL_SERVICE_PASSWORD=nacos
- MYSQL_SERVICE_DB_NAME=nacos
- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
- NACOS_AUTH_IDENTITY_KEY=nacos
- NACOS_AUTH_IDENTITY_VALUE=nacos
- NACOS_AUTH_TOKEN=nacos
volumes:
- ./logs/:/home/nacos/logs
ports:
- 8848:8848
- 9848:9848
mysql:
image: mysql:5.7
container_name: mysql
restart: always
networks:
- nacos-network
command: [
'--default-authentication-plugin=mysql_native_password',
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_general_ci',
'--explicit_defaults_for_timestamp=true',
'--lower_case_table_names=1'
]
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PWD}
MYSQL_INITDB_SKIP_TZINFO: "Asia/Shanghai"
MYSQL_DATABASE: nacos
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/logs:/var/log/mysql
- ./mysql/initdb:/docker-entrypoint-initdb.d/
- ./mysql/conf:/etc/mysql/conf.d
ports:
- 3306:3306
healthcheck:
test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p${MYSQL_ROOT_PWD}" ]
interval: 6s
timeout: 5s
retries: 10
networks:
nacos-network:
driver: bridge
name: nacos-network
创建 .env
环境变量文件:
MYSQL_ROOT_PWD=123456
4. 启动
docker compose up -d
# 查看日志
docker compose logs -f