This project contains a Docker image meant to facilitate the deployment of Nacos.
The following environment variables have been removed from the default values in the new version(Nacos 2.2.1) for the sake of system security, please add them yourself when starting up, otherwise an error will be reported at startup.
nacos/nacos-server:latest
image. For specific
reasons, refer
to Removing the Master-Slave Image Configurationdocker run --name nacos-quick -e MODE=standalone -p 8848:8848 -p 9848:9848 -d nacos/nacos-server:v2.2.0
example/.env
NACOS_VERSION=v2.3.1
For Mac user with Arm Chip (like M1/M2/M3 series) , you need to add -slim
after version which support arm
arch.
NACOS_VERSION=v2.3.1-slim
Run the following command:
Clone project
git clone --depth 1 https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
Standalone Derby
docker-compose -f example/standalone-derby.yaml up
Standalone Mysql
# Using mysql 5.7
docker-compose -f example/standalone-mysql-5.7.yaml up
# Using mysql 8
docker-compose -f example/standalone-mysql-8.yaml up
Standalone Nacos Cluster
docker-compose -f example/cluster-hostname.yaml up
Service registration
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
Service discovery
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
Publish config
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld"
Get config
curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
Open the Nacos console in your browser
name | description | option |
---|---|---|
MODE | cluster/standalone | cluster/standalone default cluster |
NACOS_SERVERS | nacos cluster address | eg. ip1:port1 ip2:port2 ip3:port3 |
PREFER_HOST_MODE | Whether hostname are supported | hostname/ip default ip |
NACOS_APPLICATION_PORT | nacos server port | default 8848 |
NACOS_SERVER_IP | custom nacos server ip when network was mutil-network | |
SPRING_DATASOURCE_PLATFORM | standalone support mysql | mysql / empty default empty |
MYSQL_SERVICE_HOST | mysql host | |
MYSQL_SERVICE_PORT | mysql database port | default : 3306 |
MYSQL_SERVICE_DB_NAME | mysql database name | |
MYSQL_SERVICE_USER | username of database | |
MYSQL_SERVICE_PASSWORD | password of database | |
MYSQL_DATABASE_NUM | It indicates the number of database | default :1 |
MYSQL_SERVICE_DB_PARAM | Database url parameter | default :characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false |
JVM_XMS | -Xms | default :1g |
JVM_XMX | -Xmx | default :1g |
JVM_XMN | -Xmn | default :512m |
JVM_MS | -XX:MetaspaceSize | default :128m |
JVM_MMS | -XX:MaxMetaspaceSize | default :320m |
NACOS_DEBUG | enable remote debug | y/n default :n |
TOMCAT_ACCESSLOG_ENABLED | server.tomcat.accesslog.enabled | default :false |
NACOS_AUTH_SYSTEM_TYPE | The auth system to use, currently only 'nacos' is supported | default :nacos |
NACOS_AUTH_ENABLE | If turn on auth system | default :false |
NACOS_AUTH_TOKEN_EXPIRE_SECONDS | The token expiration in seconds | default :18000 |
NACOS_AUTH_TOKEN | Note: It is removed from Nacos 2.2.1 |
|
NACOS_AUTH_CACHE_ENABLE | Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay. | default : false |
MEMBER_LIST | Set the cluster list with a configuration file or command-line argument | eg:192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809 |
EMBEDDED_STORAGE | Use embedded storage in cluster mode without mysql | embedded default : none |
NACOS_AUTH_CACHE_ENABLE | nacos.core.auth.caching.enabled | default : false |
NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE | nacos.core.auth.enable.userAgentAuthWhite | default : false |
NACOS_AUTH_IDENTITY_KEY | nacos.core.auth.server.identity.key | Note: It is removed from Nacos 2.2.1 |
NACOS_AUTH_IDENTITY_VALUE | nacos.core.auth.server.identity.value | Note: It is removed from Nacos 2.2.1 |
NACOS_SECURITY_IGNORE_URLS | nacos.security.ignore.urls | default : /,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/** |
NACOS_CONSOLE_UI_ENABLED | nacos.console.ui.enabled | default : true |
NACOS_CORE_PARAM_CHECK_ENABLED | nacos.core.param.check.enabled | default : true |
DB_POOL_CONNECTION_TIMEOUT | Database connection pool timeout in milliseconds | default : 30000 |
~~If the above property configuration list does not meet your requirements, you can mount the custom.properties
file
into the /home/nacos/init.d/
directory of the container, where the spring properties can be configured, and the
priority is higher than application.properties
file~~
If you have a lot of custom configuration needs, It is highly recommended to mount application.properties
in
production environment.
For example:
docker-compose -f example/custom-application-config.yaml up -d
Usage reference:Nacos monitor-guide
Note: When Grafana creates a new data source, the data source address must be http://prometheus:9090