docker 拉取文件
找镜像参考mysql安装找镜像步骤: https://www.cnblogs.com/CodeLuckly/p/15710643.html
拉取命令:
docker pull nacos/nacos-server:v2.2.2
挂载目录:
就是为了让nacos的容器中文件映射到宿主机上
mkdir -p /mydata/nacos/logs/ #新建logs目录
mkdir -p /mydata/nacos/conf/ #新建conf目录
mkdir -p /mydata/nacos/data/ #新建data目录
启动nacos复制文件到宿主机顺便看一下机器内存是否够用
# 启动
docker run -p 8848:8848 --name nacos -d nacos/nacos-server:v2.2.2
# 复制文件
docker cp nacos:/home/nacos/logs/ /mydata/nacos/logs/
docker cp nacos:/home/nacos/conf/ /mydata/nacos/conf/
docker cp nacos:/home/nacos/data/ /mydata/nacos/data/
#删除刚才为了拷贝文件启动的nacos
docker rm -f nacos
创建数据库:
数据库脚本地址: https://github.com/alibaba/nacos/blob/2.2.2/config/src/main/resources/META-INF/nacos-db.sql
单机运行nacos
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 --privileged=true -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -v /mydata/nacos/logs/:/home/nacos/logs -v /mydata/nacos/conf/:/home/nacos/conf/ --restart=always nacos/nacos-server -v /mydata/nacos/data/:/home/nacos/data \ -e SPRING_DATASOURCE_PLATFORM=mysql \ -e MYSQL_SERVICE_HOST=localhost\ -e MYSQL_SERVICE_PORT=3306 \ -e MYSQL_SERVICE_DB_NAME=nacos2.2.2 \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=root \ nacos-server:v2.2.2
查看启动日志
docker logs -f nacos
有可能会遇到异常
java.io.FileNotFoundException:nacos-logback.xml (No such file or directory)
建议检查一下文件路径,文件就在拷贝出来的宿主机上的/mydata/nacos/conf/
下。
到此完成
页面访问地址
IP:8848/nacos/index.html
启动脚本展开:
docker run -d
--name nacos
-p 8848:8848 -p 9848:9848 -p 9849:9849
--privileged=true
-e JVM_XMS=256m
-e JVM_XMX=256m
-e MODE=standalone
-v /mydata/nacos/logs/:/home/nacos/logs
-v /mydata/nacos/conf/:/home/nacos/conf/
--restart=always nacos/nacos-server
-v /mydata/nacos/data/:/home/nacos/data \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库地址\
-e MYSQL_SERVICE_PORT=数据库端口一般3306 \
-e MYSQL_SERVICE_DB_NAME=数据库名 \
-e MYSQL_SERVICE_USER=数据库账号 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
nacos-server:v2.2.2
命令详解:
docker run -d : 启动容器 -d是后台启动并返回容器id的意思
–name nacos :为容器指定一个名称
-p 8848:8848 -p 9848:9848 -p 9849:9849 : 指定端口映射,注意这里的p不能大写,大写是随机端口映射
–privileged=true : 扩大容器内的权限,将容器内的权限变为root权限,不加的话就是普通用户权限,可能会出现cannot open directory
-e JVM_XMS=256m : 为jvm启动时分配的内存
-e JVM_XMX=256m : 为jvm运行过程中分配的最大内存
-e MODE=standalone : 使用 standalone模式(单机模式),MODE值有cluster(集群)模式/standalone模式两种,MODE必须大写
-v /mydata/nacos/logs/:/home/nacos/logs : 将容器的/home/nacos/logs目录挂载到 /mydata/nacos/logs
-v /mydata/nacos/conf/:/home/nacos/conf/: 将容器的/home/nacos/conf目录挂载到 /mydata/nacos/conf
–restart=always :重启docker时,自动启动相关容器