1.拉取镜像
docker pull nacos/nacos-server:1.1.4
2.挂载目录
mkdir -p /home/nacos/logs/ #新建logs目录
mkdir -p /home/nacos/init.d/
vim /home/nacos/init.d/custom.properties #修改配置文件
添加如下参数:
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
:wq 保存退出
这边有一点要注意的就是
db.num=1
db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=user
db.password=pass
这个里面的 jdbc:mysqlxx.xx.xx.x: 这里的IP不是你mysql 映射出去的IP, 这样说把我的docker中部署了mysql 然后本机用docker映射的IP能访问本机直接navicat直接就能连接到数据
我这边用192.168.3.100 navicat是能连接到数据库 但是如果你上面的db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod? 这里面的xxxx 你也写192.168.3.100 你的nacos 报错连接不上
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
这个错 其实我们这里实际上是要配mysql在docker底层的IP 使用命令docker inspect mysql | grep IPAddress 查询出来写上去即可
把db.url.0=jdbc:mysql://xx.xx ip换成 这里的ip就ok啦
3.启动容器
docker run \
--name nacos -d \
-p 8848:8848 --privileged=true \
--restart=always -e JVM_XMS=256m -e JVM_XMX=256m \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.17.0.2 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=zhaoruipeng012 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e PREFER_HOST_MODE=hostname \
-v /home/yunwei/nacos/logs:/home/nacos/logs \
nacos/nacos-server