nacos alpine镜像,对原有docker版本的nacos轻量化之后的镜像
2.7K
配置说明环境变量中增加以下参数,方便以后迭代的版本中更灵活的使用
JVM_*: 如JVM_server_port=8088 ==> java -Dserver.port=8088 -jar x.jar
JVM_*__*: 如JVM_server_error_include__message=always ==> 最终会转换成-Dserver.error.include-message=always
ARG_*: 同JVM_*类似,只是作用于main的args参数,如ARG_server_port=8088 ==> java -jar x.jar --server.port=8088
ARG_*__*: 同JVM_*__*类似,参考ARG_*的作用域即可
JAVA_OPT_EXT: 作用于 java (之间的环境变量,用户可以自由扩展,但是此环境变量的含义实际上是设置外部的classpath) -jar x.jar
JVM_OPTS: 作用于 java (这里定义就是设置jvm的系统参数,用于jvm调优等) $JAVA_OPT_EXT -jar x.jar
NACOS_SERVERS: 这是一个特殊的环境变量,用于设置nacos集群的服务地址,如182.100.100.101 182.100.100.100
# 最终的效果会变成 java ${JVM_OPTS} ${JAVA_OPT_EXT} parsing(${JVM_*...|JVM_*__...}) -jar x.jar parsing(${ARG_*...|ARG_*__...})
下面给出一个集群的demo,如需更深入的配置nacos的参数,请使用者去官网了解,根据这种配置映射模式去设置即可#true为单机,false为集群 ==> -Dnacos.standalone=xxx
JVM_nacos_standalone="false"
#数据库类型 -Dspring.datasource.platform
JVM_spring_datasource_platform="mysql"
NACOS_SERVERS="182.100.100.101 182.100.100.100"
# 是否开启身份验证 ==> -Dnacos.core.auth.enabled=xxx
JVM_nacos_core_auth_enabled='"true"'
# ==> --management.endpoints.web.exposure.include='*'
ARG_management_endpoints_web_exposure_include='"*"'
ARG_db_url_0='"jdbc:mysql://10.43.33.6:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC"'
ARG_db_num='"1"'
JVM_OPTS="-Xmx512m -Xms512m -XX:+UseG1GC"
JVM_db_user_0="root"
JVM_db_password_0="123456"
version: '3'
services:
nacos:
container_name: nacos
image: lhstack/nacos:2.2.0
restart: always
ports:
- '8848:8848'
- '9848:9848'
healthcheck:
test: ["CMD-SHELL","wget --no-cache --spider 'http://localhost:8848/nacos/actuator/health' || exit 1"]
timeout: 2s
interval: 10s
retries: 5
start_period: 15s
env_file: .env
logging:
options:
max-file: '1'
max-size: '16k'
deploy:
resources:
limits:
cpus: '1'
memory: 384M
networks:
nacos:
ipv4_address: 182.100.100.100
nacos1:
container_name: nacos1
image: lhstack/nacos:2.2.0
restart: always
ports:
- '8849:8848'
- '9849:9848'
healthcheck:
test: ["CMD-SHELL","wget --no-cache --spider 'http://localhost:8848/nacos/actuator/health' || exit 1"]
timeout: 2s
interval: 10s
retries: 5
start_period: 15s
env_file: .env
logging:
options:
max-file: '1'
max-size: '16k'
deploy:
resources:
limits:
cpus: '1'
memory: 384M
networks:
nacos:
ipv4_address: 182.100.100.101
networks:
nacos:
driver: bridge
ipam:
driver: default
config:
- subnet: 182.100.0.0/16
https://nacos.io/zh-cn/docs/quick-start-docker.html
注意,如果使用的是nacos2.x的版本,请在运行命令中暴露9848端口,9848端口为grpc交互端口,在最新的客户端中,是使用grpc作为协议交互
# standalone
docker run --name nacos -p 8848:8848 -e JVM_XMS="512m" -e -JVM_XMX="512m" -e JVM_MS="168m" -e JVM_MMS="168m" -e JVM_XMN="288m" -e MODE=standalone -d lhstack/nacos
# 数据库持久化方式
docker run --name nacos -p 8848:8848 -e MODE=standalone -e MYSQL_SERVICE_HOST="10.43.33.6" -e MYSQL_SERVICE_USER="root" -e MYSQL_SERVICE_PASSWORD="123456" -e MYSQL_SERVICE_DB_NAME="nacos" -e SPRING_DATASOURCE_PLATFORM="mysql" -e JVM_XMS="512m" -e -JVM_XMX="512m" -e JVM_MS="168m" -e JVM_MMS="168m" -e JVM_XMN="288m" -d lhstack/nacos
集群部署
init目录中放nacos.sql文件,mysql在创建的过程中会初始化nacos数据库,开头加入两条sql
CREATE DATABASE `nacos` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `nacos`;
version: '3'
services:
mysql:
container_name: mysql
image: mysql:8.0.28
restart: always
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: "123456"
TZ: Asia/Shanghai
volumes:
- ./data:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d/
deploy:
resources:
limits:
cpus: '0.5'
memory: '512M'
healthcheck:
test: ["CMD","mysqladmin","-uroot","-p123456","ping","-h","localhost"]
timeout: 20s
retries: 10
networks:
nacos:
ipv4_address: 182.100.36.36
nacos:
container_name: nacos
image: lhstack/nacos:1.4.4
restart: always
ports:
- '8848:8848'
- '9848:9848'
environment:
MYSQL_SERVICE_DB_PARAM: "allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&characterEncoding=UTF8&serverTimezone=UTC&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false"
NACOS_SERVERS: "182.100.100.101 182.100.100.100"
TZ: Asia/Shanghai
MYSQL_SERVICE_HOST: '182.100.36.36'
MYSQL_SERVICE_USER: 'root'
MYSQL_SERVICE_PASSWORD: '123456'
MYSQL_SERVICE_DB_NAME: 'nacos'
SPRING_DATASOURCE_PLATFORM: 'mysql'
JVM_XMX: '384m'
JVM_XMS: '384m'
JVM_XMN: '192m'
JVM_MS: '128m'
JVM_MMS: '128m'
logging:
options:
max-file: '1'
max-size: '16k'
depends_on:
mysql:
condition: service_healthy
deploy:
resources:
limits:
cpus: '1'
memory: 384M
networks:
nacos:
ipv4_address: 182.100.100.100
nacos1:
container_name: nacos1
image: lhstack/nacos:1.4.4
restart: always
ports:
- '8849:8848'
- '9849:9848'
environment:
MYSQL_SERVICE_DB_PARAM: "allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&characterEncoding=UTF8&serverTimezone=UTC&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false"
TZ: Asia/Shanghai
NACOS_SERVERS: "182.100.100.101 182.100.100.100"
MYSQL_SERVICE_HOST: '182.100.36.36'
MYSQL_SERVICE_USER: 'root'
MYSQL_SERVICE_PASSWORD: '123456'
MYSQL_SERVICE_DB_NAME: 'nacos'
SPRING_DATASOURCE_PLATFORM: 'mysql'
JVM_XMX: '384m'
JVM_XMS: '384m'
JVM_XMN: '192m'
JVM_MS: '128m'
JVM_MMS: '128m'
logging:
options:
max-file: '1'
max-size: '16k'
depends_on:
mysql:
condition: service_healthy
deploy:
resources:
limits:
cpus: '1'
memory: 384M
networks:
nacos:
ipv4_address: 182.100.100.101
networks:
nacos:
driver: bridge
ipam:
driver: default
config:
- subnet: 182.100.0.0/16
version: '3'
services:
nacos:
image: lhstack/nacos:1.4.2-alpine
container_name: nacos
restart: always
ports:
- '8848:8848'
logging:
options:
max-file: '1'
max-size: '16k'
volumes:
- ./data:/home/nacos/data
- ./logs:/home/nacos/logs
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
environment:
MODE: standalone
JVM_XMS: 384m
JVM_XMX: 384m
JVM_MS: 128m
JVM_MMS: 128m
JVM_XMN: 192m
networks:
nacos:
ipv4_address: 182.100.100.100
networks:
nacos:
driver: bridge
ipam:
driver: default
config:
- subnet: 182.100.0.0/16
docker-compose.yml使用mysql作为存储
version: '3'
services:
nacos:
container_name: nacos
image: lhstack/nacos:1.4.2-alpine
restart: always
ports:
- '8848:8848'
environment:
MYSQL_SERVICE_DB_PARAM: "allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&characterEncoding=UTF8&serverTimezone=UTC&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false"
MODE: 'standalone'
MYSQL_SERVICE_HOST: '10.43.33.6'
MYSQL_SERVICE_USER: 'root'
MYSQL_SERVICE_PASSWORD: '123456'
MYSQL_SERVICE_DB_NAME: 'nacos'
SPRING_DATASOURCE_PLATFORM: 'mysql'
JVM_XMX: '320m'
JVM_XMS: '320m'
JVM_XMN: '192m'
JVM_MS: '64m'
JVM_MMS: '64m'
logging:
options:
max-file: '1'
max-size: '16k'
deploy:
resources:
limits:
cpus: '1'
memory: 384M
networks:
nacos:
ipv4_address: 182.100.100.100
networks:
nacos:
driver: bridge
ipam:
driver: default
config:
- subnet: 182.100.0.0/16
Content type
Image
Digest
sha256:3167d424c…
Size
168.9 MB
Last updated
about 4 years ago
docker pull lhstack/nacos