docker 创建nacos-server standalone


前言

自己玩docker的随手记录。


一、获取image

1.docker hub 搜索nacos镜像。

docker search nacos
NAME                                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nacos/nacos-server                   This project contains a Docker image meant t…   330                  [OK]
zhusaidong/nacos-server-m1           Nacos Server for Apple MacOS M1                 12
nacos/nacos-mysql-master             nacos-mysql-master                              6
zill057/nacos-server-apple-silicon   nacos with Apple Silicon M1 Chip support. 支…   6
nacos/nacos-mysql                                                                    6
paderlol/nacos                       Nacos-quick-start-https://nacos.io/en-us/doc…   5
chenfengwei/nacos                    nacos服务镜像,nacos版本1.3.2,同时兼任arm64…        3
nacos/nacos-operator                                                                 2
king019/nacos                                                                        2
nacos/nacos-mysql-slave                                                              1
nacos/nacos-peer-finder-plugin       scale plugin for nacos k8s                      1
tanyi/nacos-server                   nacos-server官方包制作而成的镜像                   1
jude95/nacos-server-mysql8           nacos with mysql8                               0
nacosta/node-5.5.0-base                                                              0
nacosta/redis                                                                        0
nacosta/nodejs                                                                       0
centralx/nacos-server                Multi CPU architectures support for nacos/na…   0
dockerlishijie/nacos-server                                                          0
tonychen0716/nacos-server            Multi-arch image for Alibaba Nacos              0
lizexiong/nacos                                                                      0
eduosi/nacos-server                                                                  0
loads/nacos-server                                                                   0
paderlol/nacos-mysql-master                                                          0
paderlol/nacos-mysql-slave                                                           0
lijiahao1995/nacos                                                                   0

2.拉取选择的镜像,此处选择最新版本

docker pull nacos/nacos-server

3.查看镜像仓库

docker images 
DoitsMacbookPro :: ~ » docker images
REPOSITORY                 TAG          IMAGE ID       CREATED        	SIZE
redis                      latest       9da089657551   2 days ago   	117MB
mysql                      latest       43fcfca0776d   2 days ago   	449MB
nacos/nacos-server         latest       5ef6d98bd956   1 days ago   	1.06GB

二、创建container

1.创建本地目录,挂载到容器目录,持久化nacos数据和配置,container删除后数据依然在。

mkdir -p /Users/doit/Docker/nacos/logs
mkdir -p /Users/doit/Docker/nacos/data
mkdir -p /Users/doit/Docker/nacos/conf

2.使用mysql保存数据,拉取sql执行初始化,地址如下。

https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

3.创建container。

docker run -d -p 8848:8848 \
--name nacos \
--network=doit \
--env JVM_XMS=256m \
--env JVM_XMX=256m \
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=172.18.0.2 \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_DB_NAME=nacos \
--env MYSQL_SERVICE_USER=nacos \
--env MYSQL_SERVICE_PASSWORD=nacos \
-v /Users/doit/Docker/nacos/conf:/home/nacos/conf \
-v /Users/doit/Docker/nacos/logs:/home/nacos/logs \
-v /Users/doit/Docker/nacos/data:/home/nacos/data \
nacos/nacos-server

4.命令解释。

docker run  										#在docker中启动一个容器实例
-d													#该容器在后台运行
-p 8848:8848										#容器与主机映射端口为,主机3306,容器3306
--name nacos										#容器运行后的名称
--network=doit \									#指定网桥。因为使用docker里的mysql,所以要加入对应的网络。
--env JVM_XMS=256m 
--env JVM_XMX=256m 
--env MODE=standalone 								#单机模式
--env SPRING_DATASOURCE_PLATFORM=mysql 				#数据库类型
--env MYSQL_SERVICE_HOST=172.18.0.2 				#数据库IP
--env MYSQL_SERVICE_PORT=3306 						#数据库端口
--env MYSQL_SERVICE_DB_NAME=nacos 					#数据库schema
--env MYSQL_SERVICE_USER=nacos 						#数据库username
--env MYSQL_SERVICE_PASSWORD=nacos 					#数据库password
-v /Users/doit/Docker/nacos/conf:/home/nacos/conf   #配置目录挂载
-v /Users/doit/Docker/nacos/logs:/home/nacos/logs 	#日志目录挂载
-v /Users/doit/Docker/nacos/data:/home/nacos/data 	#数据目录挂载
nacos/nacos-server									#需要运行的容器名称以及版本号

5.查看情况。

docker logs nacos   #启动日志

docker inspect nacos #环境配置

6.查看情况。

访问http://localhost:8848/nacos 。默认用户名密码均为nacos。
在这里插入图片描述

7.踩坑记录。

nacos启动提示" java.lang.IllegalStateException: No DataSource set " 。 起因是nacos关闭时未完成mysql连接关闭,mysql依旧认为连接存在。解决方案如下。

docker exec -it mysql bash   #进入mysql

mysql -p -u username         #连接mysql,要输入password

flush hosts;

重新启动nacos即可。切记,最好用nacos配置的用户去执行命令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农的散文诗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值