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

 

posted @ 2022-01-09 03:02  YangDanMua  阅读(5149)  评论(0编辑  收藏  举报