docker安装nacos-单机
一、下载镜像
# 查找镜像 docker search nacos # nacos/nacos-server # 下载镜像 https://hub.docker.com/ docker 官方搜索查看有哪些 nacos 镜像版本 docker pull nacos/nacos-server:v2.0.3 # 查看已下载镜像 docker images
二、数据库配置
数据库文件下载
码云:distribution/conf/nacos-mysql.sql · Gitee 极速下载/Nacos - 码云 - 开源中国
相关配置
# 建库 create database nacos; use nacos; -- 执行或者导入 nacos-db.sql,不知道为什么这个文件里的注释还写了 【数据库全名 = nacos_config】 -- 可以直接复制粘贴到 navicat 或 sqlyog 上执行,200多行不是很长 # 创建 nacos 单独使用的一个用户,也可以直接把 root 用户给他 create user 'nacos'@'%' IDENTIFIED BY 'nacos'; -- 库nacos的所有表的执行存储过程、CRUD权限 grant execute, insert, select, update on nacos.* to 'nacos'@'%'; -- 刷新权限 FLUSH PRIVILEGES; -- 查看权限 show grants for nacos;
三、创建相关目录
# 创建 nacos 日志存放目录 mkdir -p /home/docker/nacos/logs # 创建 nacos 配置文件目录 mkdir -p /home/docker/nacos/init.d
配置文件
vim /home/docker/nacos/init.d/custom.properties
配置文件内容
其实下面的配置应该可以下载一个nacos安装包, 然后它也自带配置文件, 应该是可以参考他的。我这里写的配置就是若使用安装包进行安装时需要修改的配置,也就是我理解的其他配置就是默认的,我们这里的配置可以覆盖那些配置
数据库的url自行处理,比如ip端口、库名等
#*************** Config Module Related Configurations ***************# ### If use MySQL as datasource: spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://192.168.33.100:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=true&serverTimezone=Asia/Shanghai db.user.0=nacos db.password.0=nacos
四、创建容器并启动
docker run \ --name nacos \ -d \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9848 \ --restart=always \ -e JVM_XMS=256m \ -e JVM_XMX=256m \ -e MODE=standalone \ -v /home/docker/nacos/logs:/home/nacos/logs \ -v /home/docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \ nacos/nacos-server:v2.0.3
查看启动日志
docker logs nacos
访问
ip:port/nacos
用户名和密码默认都是 nacos,就是上面我们执行的那个sql文件中最后插入的
注
如果出现连接数据库的错误,也就是 DataSource 数据源的错误,可能是 custom.properties 中的 db.url 的超时时间较短的问题(我在公司的电脑不知道为什么连接数据库就很慢)
五、docker-compose
docker-compose.yml
version: '3' services: nacos-2.0.3: # 镜像名 image: nacos/nacos-server:v2.0.3 # 容器名(以后的控制都通过这个) container_name: nacos-2.0.3 # 重启策略 restart: always env_file: - ./nacos-standlone-mysql.env # 映射端口 ports: - 8848:8848 - 9848:9848 - 9849:9848 volumes: # 日志挂载 - ./logs/:/home/nacos/logs/ # 配置挂载 # - ./init.d/custom.properties:/home/nacos/init.d/custom.properties # 系统时区信息和本地一致(任何Linux容器都是这样吗) - /etc/localtime:/etc/localtime:ro networks: - demo_net cap_add: # 这样才能使用 JDK 的工具 jstack 等 - SYS_PTRACE networks: demo_net: external: true # 来自外部
nacos-standlone-mysql.env
# 直译:首选主机模式 PREFER_HOST_MODE=hostname # 使用模式单机模式 MODE=standalone # 直译过来是spring数据源平台(由于我们用的是mysql所以不用改) SPRING_DATASOURCE_PLATFORM=mysql # mysql链接参数 MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&allowPublicKeyRetrieval=true&queryTimeout=2400&serverTimezone=Asia/Shanghai # mysql链接地址(注:ip地址可以写容器名) MYSQL_SERVICE_HOST=mysql8 # mysql数据库名 MYSQL_SERVICE_DB_NAME=nacos # mysql端口 MYSQL_SERVICE_PORT=3306 # mysql用户名 MYSQL_SERVICE_USER=root # mysql密码 MYSQL_SERVICE_PASSWORD=root # jvm优化参数 JVM_XMS=256m JVM_XMX=256m JVM_XMN=128m