docker 安装 nacos 安装mysql

1创建自定义网络(用于容器通讯)

docker network create common-network

1.1查看网络

docker network ls

效果

2安装mysql

在宿主机创建文件夹,后续会挂载到docker虚拟机

//mysql配置文件 
mkdir -p /data/mysql/conf
//mysql数据文件路径 
mkdir –p /data/mysql/data
//日志文件路径
mkdir -p /data/mysql/logs 

【linux】下拉取镜像并启动

docker run -p 3306:3306 --name mysql -d \
--restart=always \
--network common-network \
-v /data/mysql/conf:/etc/mysql/conf.d \
-v /data/mysql/logs:/logs \
-v /data/mysql/data:/data \
-e MYSQL_ROOT_PASSWORD=admin \
mysql:5.7 

【window】下拉取镜像并启动

-v 后边跟的是window硬盘目录挂载到虚拟镜像目录
window目录E:\ 用/e/代替

docker run -p 3306:3306 --name mysql -d ^
--restart=always ^
--network common-network ^
-v /e/YuanMa/dockerApp/nacos-mysql/mysql/data/mysql/conf:/etc/mysql/conf.d ^
-v /e/YuanMa/dockerApp/nacos-mysql/mysql/data/mysql/logs:/logs ^
-v /e/YuanMa/dockerApp/nacos-mysql/mysql/data/mysql/data:/data ^
-e MYSQL_ROOT_PASSWORD=admin ^
mysql:5.7

docker 安装nacos

安装nacos方式1

拉取镜像
docker pull nacos/nacos-server

//查询nacos镜像有哪些版本。没合适的可以往下看
docker search nacos
//拉取镜像
docker pull nacos/nacos-server
//查看镜像
docker images
  • 启动nacos容器
docker run --network common-network --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server

  • 查看启动的容器
docker ps

在这里插入图片描述

nacos 配置连接数据库

  • 查看自定义网络中各容器ip
//查看网络
docker network ls
//查看网络容器
docker network inspect common-network

在这里插入图片描述
在这里插入图片描述
  • 进入nacos容器修改配置
// 进入容器  
docker exec -it nacos bash #docker exec -it 容器ID /bin/bash
// 修改容器配置
cd conf
vi application.properties

在这里插入图片描述
  • 创建数据库表(脚本地址)
https://github.com/alibaba/nacos/blob/develop/distribution/conf/nacos-mysql.sql 

  • 重启容器
docker restart nacos

  • nacos管理平台(新增配置 ,然后可在数据库查看)
http://ip:8848/nacos
(用户名密码都是nacos)

在这里插入图片描述
在这里插入图片描述

安装nacos方式2

拉镜像,版本查看:https://github.com/nacos-group/nacos-docker

docker pull nacos/nacos-server:1.1.4  //稳定版,无权限 

docker pull nacos/nacos-server:1.3.1  //稳定版,有权限 

创建数据目录

mkdir -p /home/dockerdata/nacos/logs

mkdir -p /home/dockerdata/nacos1.3.1/logs

运行镜像 默认账号密码:nacos:nacos

执行docker run 需要把斜杠 去掉。

1.1.4

配置默认的数据库信息

docker run -d \

-e PREFER_HOST_MODE=ip 
-e MODE=standalone 
-e SPRING_DATASOURCE_PLATFORM=mysql 
-e MYSQL_MASTER_SERVICE_HOST=172.168.1.33 
-e MYSQL_MASTER_SERVICE_PORT=3306 
-e MYSQL_MASTER_SERVICE_USER=root 
-e MYSQL_MASTER_SERVICE_PASSWORD=root 
-e MYSQL_MASTER_SERVICE_DB_NAME=nacos 
-e MYSQL_SLAVE_SERVICE_HOST=172.168.1.33 
-e MYSQL_SLAVE_SERVICE_PORT=3306 
-v /home/dockerdata/nacos/logs:/home/nacos/logs 
-p 8848:8848 
--name nacos 
--restart=always 
nacos/nacos-server:1.1.4

1.3.1

docker run -d \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.168.1.33 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e TIME_ZONE='Asia/Shanghai' \
-v /home/dockerdata/nacos1.3.1/logs:/home/nacos/logs \
-p 8848:8848 \
--name nacos1.3.1 \
--restart=always \
nacos/nacos-server:1.3.1

nacos初始化sql,需要先创建nacos数据库后,然后执行下面的sql

https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql

View Code

1.1.4 升级1.3.1需要执行的脚本

ALTER TABLE `roles` ADD UNIQUE `uk_username_role` (`username`, `role`); CREATE TABLE permissions (
    role varchar(50) NOT NULL,
    resource varchar(512) NOT NULL,
    action varchar(8) NOT NULL, constraint uk_role_permission UNIQUE (role,resource,action)
) ROW_FORMAT=DYNAMIC;

如果启动1.3.1报错,比如mysql时区异常,把conf配置文件弄到主机上

docker cp nacos1.3.1:/home/nacos/conf /home/dockerdata/nacos1.3.1 

修改mysql的配置后

docker stop nacos1.3.1
docker rm nacos1.3.1
docker run -d \
-e PREFER_HOST_MODE=ip \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=172.168.1.33 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e TIME_ZONE='Asia/Shanghai' \
-v /home/dockerdata/nacos1.3.1/logs:/home/nacos/logs \
-v /home/dockerdata/nacos1.3.1/conf:/home/nacos/conf \
-p 8848:8848 \
--name nacos1.3.1 \
--restart=always \
nacos/nacos-server:1.3.1

你可能感兴趣的:(docker 安装 nacos 安装mysql)