Docker容器化部署Nacos

1.拉取镜像

docker pull 命令

含义:从云服务器拉取镜像

以nacos镜像示例:docker pull nacos/nacos-server:1.2.0

注意:1.2.0为版本号,可以不加,不加默认为最新。

获取其他镜像命令亦是如此。(这步其实可以省略,当使用 docker run 时,没有镜像会自动下载镜像 )

2.创建nacos容器

docker run 命令

含义:创建并启动容器

2.1、先创建一个没有什么设置的nacos容器

docker run -d \
--name nacos \
-p 8848:8848 \
nacos/nacos-server:lates

2.2、通过docker命令将配置文件复制出来

命令:docker cp nacos:/home/nacos/conf /usr/local/software/nacos/8848

命令:docker cp nacos:/home/nacos/data /usr/local/software/nacos/8848

命令:docker cp nacos:/home/nacos/logs /usr/local/software/nacos/8848

这是为后续容器挂载做准备。当对容器进行挂载时,优先是以自己系统目录为主,也就意味着如果挂载的目录里面内容为空,容器内该目录也为空。

2.3、下面是docker run创建nacos容器时所需的各个参数(建议2.0以后版本)

docker run -d \
--name nacos \
-p 8848:8848 \
-p 8848:7848 \
-p 9848:9848 \
-p 9849:9849 \
-v /usr/local/software/nacos/8848/conf:/home/nacos/conf \
-v /usr/local/software/nacos/8848/conf:/home/nacos/data \
-v /usr/local/software/nacos/8848/logs:/home/nacos/logs \
-e SPRING_DATASOURCE_PLATFORM=mysql 
-e MYSQL_SERVICE_HOST=127.0.0.1 
-e MYSQL_SERVICE_PORT=3306 
-e MYSQL_SERVICE_USER=root 
-e MYSQL_SERVICE_PASSWORD=123456 
-e MYSQL_SERVICE_DB_NAME=nacos-config 
--privileged=true 
-e MODE=standalone \
-e TZ="Asia/Shanghai" \
--restart=always \
nacos/nacos-server:lates

-d:表示创建一个守护进程

--name:为我们当前启动的容器命名

-p:端口映射,将容器的8848端口映射到主机的8848端口(左边是主机端口,可以随便设定,只要没有被占用就行),Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加3个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成

-v:挂载数据卷,其中conf为配置信息,logs为日志,data目录低版本没有

-e SPRING_DATASOURCE_PLATFORM: 连接数据库

-e MYSQL_SERVICE_HOST、-e MYSQL_SERVICE_PORT、-e MYSQL_SERVICE_PASSWORD: ip、端口、用户名、密码

-e MYSQL_SERVICE_DB_NAME:nacos的数据库名称

--privileged=true: 容器将被赋予与主机系统相同的权限

-e MODE=standalone:单机版

-e TZ="Asia/Shanghai":设置时区

--restart=always:开机启动

\表示换行,命令的最后跟上镜像名称跟版本,lates表示最新

注意:如果此命令执行较慢,大概率是没有提前下载好镜像或者命令最后跟的镜像名称和版本和之前下载的镜像不对应,这时会下载新的镜像,并用新的镜像创建容器

posted @ 2024-05-17 10:23  蓝眼琪莎拉  阅读(349)  评论(0)    收藏  举报