文章目录docker中安装nacos镜像创建并启动容器小结进一步操作拷贝容器里的配置文件删除前面创建的容器用挂载的方式创建并启动容器关于Nacos2.x客户端与Docker Desktop网络兼容性问题参考https://blog.csdn.net/ss810540895/article/details/143590558docker中安装nacos镜像nacos2.1.2镜像地址docker.aityp.com/image/docker.io/nacos/nacos-server:v2.1.1拉取镜像docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.1.1镜像重命名docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.1.1 nacos/nacos-server:v2.1.1创建并启动容器创建容器并启动docker run --name nacos -d -p 8848:8848 -e MODEstandalone nacos/nacos-server:v2.1.1docker run启动一个新的 Docker 容器。name nacos给容器指定名称为 nacos方便后续管理如启动、停止、查看日志。ddetach后台运行容器并返回容器 ID不在终端前台输出日志。p 8848:8848端口映射把宿主机的 8848​ 端口映射到容器内的 8848​ 端口用于访问 Nacos 控制台和接口。e MODEstandalone设置环境变量 MODEstandalone表示以单机模式启动 Nacos默认是集群模式。nacos/nacos-server:v2.1.1使用的镜像名及版本这里是 Nacos 官方镜像的 2.1.1​ 版本。打开页面http://localhost:8848/nacos/#/login默认账户和默认密码都是nacos。小结到此nacos已经能登录能用。如果只是简单使用可以到此结束。下面进一步操作是为了把nacos配置文件、日志文件、数据文件迁移到宿主机上并通过挂载的方式创建容器。使得容器被删除后相关文件在宿主机上不会丢失。进一步操作拷贝容器里的配置文件把容器里面的配置文件拷贝出来。可跳过可以进入容器看看里面的内容# 进入容器 docker exec -it nacos bash ls data ls logs ls conf #退出容器 ctrl dexec表示正在运行的容器。docker exec -it nacos bash是只能从正在运行的容器中查找nacos再进入容器内部操作。拷贝容器内的文件docker cp nacos:/home/nacos/conf ./ docker cp nacos:/home/nacos/logs ./ docker cp nacos:/home/nacos/data ./拷贝时会自动在宿主机上创建conf、logs、data文件夹删除前面创建的容器docker ps docker stop nacos docker rm nacos用挂载的方式创建并启动容器docker run --name nacos -d \ -p 8848:8848 \ -e MODEstandalone \ -v ./conf:/home/nacos/conf \ -v ./logs:/home/nacos/logs \ -v ./data:/home/nacos/data \ nacos/nacos-server:v2.1.1这样新启动的容器使用的是宿主机上的配置文件。可以避免容器删除后配置消失也方便后续修改和管理。如果是在Windows上的docker desktop中运行会多出了三个奇怪的文件夹所以改用powershell来运行docker run --name nacos -d -p 8848:8848 -e MODEstandalone -v .\conf:/home/nacos/conf -v .\logs:/home/nacos/logs -v .\data:/home/nacos/data nacos/nacos-server:v2.1.1关于Nacos2.x客户端与Docker Desktop网络兼容性问题Docker Desktop for Windows 的端口映射只映射了指定的 8848端口而 Nacos 2.x 客户端还会尝试连接 9848gRPC 端口这个端口没有被映射导致客户端内部出现静默失败返回 null 而不报错。所以可以多映射两个端口-p9848:9848\# 关键暴露 gRPC 端口-p9849:9849\# 关键暴露 gRPC 服务端端口创建容器时dockerrun--namenacos-d-p8848:8848-p9848:9848-p9849:9849-eMODEstandalone nacos/nacos-server:v2.1.1