使用docker desktop安装mysql,nacos
环境准备确认已安装docker desktop
1. mysql
1.1 拉取mysql镜像
可以执行命令docker pull mysql
或者指定版本 docker pull mysql:8.0.39
docker pull mysql
docker pull mysql:8.0.39
或者在docker desktop客户端搜索MySQL镜像,选择合适的版本(Tag),点击pull
直接拉取
可以在desktop 客户端查看: Images
也可以在终端查看 docker images
1.2 启动 MySQL 容器
docker run --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v C:/tool/docker/mysql/data:/var/lib/mysql -d mysql:8.0.39
--name my_mysql
指定容器名称为my_mysql
-p 3306:3306
-p <宿主机端口>:<容器端口>
设置宿主机与容器之间的端口映射
-e MYSQL_ROOT_PASSWORD=123456
指定初始化root账户密码为123456
-v C:/tool/docker/mysql/data:/var/lib/mysql
-v <宿主机目录>:<容器目录>
挂载数据卷(Volume),实现宿主机与容器之间的目录映射
-d
后台运行
mysql:8.0.39
指定要使用的镜像及其版本标签
docker ps #查看容器的状态
2. nacos
2.1 拉取nacos镜像
docker pull nacos/nacos-server # 默认拉取latest版本
docker pull nacos/nacos-server:v2.3.0 # 指定版本
除了使用docker命令拉取镜像外,也可以在decker desktop 客户端获取,步骤和获取MySQL一样。
2.2 启动nacos容器
docker run --name my_nacos -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 -v C:/tool/docker/nacos/data:/home/nacos/data -d nacos/nacos-server:v2.3.0
如果需要修改nacos配置文件(如修改数据库配置),可挂载 application.properties
-v C:/tool/docker/nacos/conf/application.properties:/home/nacos/conf/application.properties
如果修改为连接mysql数据库,可能有容器间通信问题,启动nacos容器会有下面错误。
java.lang.RuntimeException: [db-load-error]load jdbc.properties error
Could not create connection to database server. Attempted reconnect 3 times. Giving up.
3. docker 容器通信
1. 创建一个自定义网络
docker network create --driver bridge --subnet=192.168.0.0/24 --gateway=192.168.0.1 subnetwork
subnetwork
自定义网络名
--driver
网络驱动
--gateway
网关地址
--subnet
表示网段的 CIDR 格式的子网
2. 给MySQL容器指定IP
移除旧的MySQL容器,更新启动命令,加入自定义网络参数和指定ip的参数, 确认IP地址在你自定义的ip区域内
--net subnetwork
--ip 192.168.0.3
docker run --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v C:/tool/docker/mysql/data:/var/lib/mysql -d mysql:8.0.39 --net subnetwork --ip 192.168.0.3
3. nacos连接指定IP的mysql
nacos容器启动增加自定义网络参数, properties文件中指定mysql的地址
docker run --name my_nacos -e MODE=standalone -p 8848:8848 -p 9848:9848 -p 9849:9849 -v C:/tool/docker/nacos/data:/home/nacos/data -d nacos/nacos-server:v2.3.0 --net subnetwork
db.url.0=jdbc:mysql://192.168.0.3
:3306/nacos?..