nacos-docker部署及解决连接不上容器中的mysql的问题(详细)
⼀、所需环境
docker:
git:yum install git
⼀、下载nacos-docker.zip
git ⽅式下载
git clone github/nacos-group/nacos-docker.git
有时会遇到git下载⽐较卡的情况也可以去GitHub上下载zip压缩包
wget github/nacos-group/nacos-docker/archive/refs/heads/master.zip
解压后我们得到了下图这些⽂件
⼆、安装mysql
新建数据库nacos,并执⾏ ⽂件。可以⽤下载后⽤navicat执⾏。
三、修改nacos-docker 配置
vim example/standalone-mysql-8.yaml
打开standalone-mysql-8.yaml⽂件后我们会看到以下代码。
version:"2"
services:
nacos:
image: nacos/nacos-server:1.4.0-BETA
container_name: nacos-standalone-mysql
env_file:
-
../v
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
-"8848:8848"
-"9555:9555"
depends_on:
- mysql
restart: always
mysql:
container_name: mysql
image: nacos/nacos-mysql:8.0.16
env_file:
- ../v
volumes:
- ./mysql:/var/lib/mysql
ports:
-"3306:3306"
接着我们来修改这段代码,注意image后⾯的版本号删掉版本号,⽤最新版本。由于我们需要使⽤⾃定义的MySQL,所以删掉mysql节点下的所有东西。修改完成后如下
container_name: nacos
env_file:
- ../v
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
-"8848:8848"
-"9555:9555"
restart: always
解决mysql连接不上的问题
⾸先我们先要查看⼀下mysql的IP地址和使⽤的⽹络(由于nacos是安装在docker中,localhost并不能访问到mysql)
docker inspect mysql
执⾏后我们会看到mysql的⽹络参数。尤其要注意IPAddress和NetworkID
"Networks":{
"bridge":{
"IPAMConfig":null,
"Links":null,
"Aliases":null,
"NetworkID":"3f2e92cdb9e5041230ccf8358e99a508f5279d9b08b437104fcdbfc54636f4bb",
"EndpointID":"86028c1bb25909699f7350087159330f476cb89e10e91bfc3800c6398572ca75",
"Gateway":"172.17.0.1",
"IPAddress":"172.17.0.2",
"IPPrefixLen":16,
"IPv6Gateway":"",
"GlobalIPv6Address":"",
"GlobalIPv6PrefixLen":0,
"MacAddress":"02:42:ac:11:00:02",
"DriverOpts":null
}
}
接着我们执⾏以下代码
docker network ls
⽤图⽚中的NETWORK ID和上⾯json串中的NetworkID对⽐可以发现,mysql是处于bridge这个⽹络当中,所以要想nacos可以连接上上⾯这个⽹络需要在standalone-mysql-8.yaml中添加networks,修改完成后如下
mysql下载不了怎么办
container_name: nacos
env_file:
- ../v
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
-"8848:8848"
-"9555:9555"
restart: always
network_mode: bridge
networks:
default:
external:
name: bridge
修改mysql连接配置
然后我们可以发现配置⽂件存放位置为 v。
vim v
打开后如下
PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=mysql
MYSQL_SERVICE_DB_NAME=nacos_devtest
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=nacos
接着我们开始修改配置⽂件
//直译:⾸选主机模式
PREFER_HOST_MODE=hostname
//使⽤模式单机模式
MODE=standalone
//直译过来是spring数据源平台(由于我们⽤的是mysql所以不⽤改)
SPRING_DATASOURCE_PLATFORM=mysql
//mysql链接参数
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&allowPublicKeyRetrieval=tru e&queryTimeout=2400&serverTimezone=Asia/Shanghai
//mysql链接地址(注:ip地址可以写容器名)
MYSQL_SERVICE_HOST=172.17.0.2
//mysql数据库名
MYSQL_SERVICE_DB_NAME=nacos
//mysql端⼝
MYSQL_SERVICE_PORT=3306
//mysql⽤户名
MYSQL_SERVICE_USER=root
//mysql密码
MYSQL_SERVICE_PASSWORD=root
//jvm优化参数
JVM_XMS=256m
JVM_XMX=256m
JVM_XMN=128m
⾄此所有的配置都已完毕
启动
docker-compose -f example/standalone-mysql-8.yaml up 后台运⾏
docker-compose -f example/standalone-mysql-8.yaml up -d 启动成功

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。