Docker部署Nacos

系统:centos 7

一、准备工作

1.创建本地系统目录,后边用来做文件目录映射,方便查看日志和修改配置。个人习惯放在~目录下,改成其他也可,比如/home

mkdir -p ~/data/nacos

2.开放端口,方便后续做端口映射
tips:

  • 如果是云服务,比如ECS,记得同步在安全组配置开放端口
  • 如果是本地虚拟机.....没啥特殊需求的话,直接关掉禁用防火墙吧......清净
// 开放端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent
// 重载配置
firewall-cmd --reload
// 查看已开放的端口,用来确认是否设置成功
firewall-cmd --zone=public --list-ports
// 如果是本地虚拟机,需要直接禁用防火墙的话,用以下命令;
systemctl stop firewalld
systemctl disable firewalld

二、下载、创建并运行

1.拉取镜像

docker pull nacos/nacos-server

tips: 这里是直接拉取的最新版本(latest版)的nacos镜像,如果需要指定版本, 使用docker pull nacos/nacos-server:版本号
例:

docker pull nacos/nacos-server:1.2.0

2.创建临时容器,主要是为了将容器内部的日志、配置目录复制出来,便于后边做映射管理

// 使用nacos/nacos-server镜像,创建一个名为nacos-temp并以单例模式启动且在后台运行的容器
docker run \
-d \
--name nacos-temp \
-e MODE=standalone \
nacos/nacos-server

tips:一个小提示,这个命令直接复制粘贴即可,其中的-e MODE=standlone一定不要省略,否则nacos将默认的以集群模式启动,需要额外配置数据源,如不配置会导致启动失败。我们这一步只是为了复制出来必要的映射目录中的内容,没必要搞得太复杂,简单搞一个临时的容器即可。

3.可以使用以下命令查看是否运行成功

docker logs  nacos-temp
// 也可以跟随式的查看
docker logs -f nacos-temp

4.等待容器启动起来之后,将日志和配置目录整体复制出来到上边预备的目录里

// 拷贝命令:docker cp 容器名:目标目录路径 本地路径
docker cp nacos-temp:/home/nacos/logs ~/data/nacos
docker cp nacos-temp:/home/nacos/conf ~/data/nacos
docker cp nacos-temp:/home/nacos/data ~/data/nacos

5.删除临时容器

docker remove -f nacos-temp

6.创建并运行正式的nacos容器

docker run \
-d \
-p 8848:8848 \
-e MODE=standalone \
-e JVM_XMS=512M \
-e JVM_XMX=512M \
-v ~/data/nacos/logs/:/home/nacos/logs \
-v ~/data/nacos/conf/:/home/nacos/conf \
-v ~/data/nacos/data/:/home/nacos/data \
--restart=unless-stopped \
--privileged=true \
--name nacos \
nacos/nacos-server

命令参数说明,可以按照个人喜好及机器配置修改选项:

docker run    >运行容器
-d            >以后台运行方式运行容器
-p 8848:8848  >指定端口映射->【用户无法访问docker容器内部的端口,但可以访问容器宿主机的端口。通过端口映射,可以将容器端口映射到宿主机,这样用户通过访问宿主机的端口就可以访问容器的端口了】

-e MODE=standalone >设置当前nacos容器以单例模式运行
                   -e 指设置环境变量,也可写成--env
                   MODE(必须大写)用来指定运行方式,值有两种可选:standalone=单例 / cluster=集群
-e JVM-XMS=512M    >设置JVM启动时分配的内存大小,推荐值为总内存的1/32至1/16之间
-e JVM-XMX=512M    >设置运行nacos容器时,JVM最大占用内存,推荐值为总内存的1/4至3/4   

-v /root/data/nacos/logs/:/home/nacos/logs  >将容器的/home/nacos/logs目录挂载到/root/data/nacos/logs
-v /root/data/nacos/conf/:/home/nacos/conf  >将容器的/home/nacos/conf目录挂载到/root/data/nacos/conf
-v /root/data/nacos/data/:/home/nacos/data  >将容器的/home/nacos/data目录挂载到/root/data/nacos/data 

--privileged=true  >授权挂载目录的访问权限,将容器内的权限变为root权限;不加的话就是普通用户权限,可能会出现cannot open directory
--name nacos       >指定容器的名字
--restart=unless-stopped   >用来设置容器重启时机,取值:【always】:表示重启docker时,自动启动相关容器
                                                      【unless-stopped】:表示,如果容器由于任何原因停止运行(如崩溃或手动停止),Docker 会自动重新启动该容器。
                                                      除非容器是通过 docker stop 或者其他明确的停止命令被用户主动停止的,在这种情况下,即使 Docker 守护进程重启,也不会自动重启这个容器。
《一个坑》:但在centos7VM中使用过程中,当挂起虚拟机之后再重启时,nacos会变得无法连接。即使其他所有的配置都正常,容器运行也正常,但就是无法连接。

7.最后访问一下,管理端地址


本篇为单例模式启动范例,集群模式配置请参考官网文档:https://nacos.io/docs/latest/manual/admin/deployment/deployment-cluster/

参考资料:https://blog.csdn.net/ilvjiale/article/details/129417768

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容