docker-compose部署蓝眼云盘
一、环境准备安装docker、docker-compose
1、安装docker、docker-compose步骤省略
2、查看docker、docker-compose版本
[root@master ~]# docker -v
Docker version 20.10.5, build 55c4c88
[root@master ~]# docker-compose -v
docker-compose version 1.28.6, build 5db8d86f
3、提前拉取镜像
(1)拉取MySql:5.7镜像
[root@master ~]# docker pull mysql:5.7
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6AUu5cB-1679633665366)(C:\Users\Kubernetes Spring\AppData\Roaming\Typora\typora-user-images\image-20230324111708549.png)]
(2)拉取蓝眼云盘的镜像
[root@master ~]# docker pull eyeblue/tank:3.0.5
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gU9fg70v-1679633665368)(C:\Users\Kubernetes Spring\AppData\Roaming\Typora\typora-user-images\image-20230324112048258.png)]
4、构建自定义的Mysql镜像
#创建lanyan目录
[root@master ~]# mkdir lanyan
[root@master ~]# cd lanyan/
#编辑Dockerfile文件
[root@master lanyan]# vi Dockerfile
[root@master lanyan]# cat Dockerfile
#基于官方mysql:5.7镜像
FROM mysql:5.7
#作者
MAINTAINER lanyan-docker-compose
#配置数据库root用户密码
ENV MYSQL_ROOT_PASSWORD: tank123
#创建一个名为tank的数据库
ENV MYSQL_DATABASE: tank
#创建一个名为tank的用户
ENV MYSQL_USER: tank
#c配置用户密码
ENV MYSQL_PASSWORD: tank123
#开放3306端口
EXPOSE 3306
[root@master lanyan]# docker build -t lanyan-mysql:5.7 .
Sending build context to Docker daemon 5.12kB
Step 1/7 : FROM mysql:5.7
---> b6ee2207ee7a
Step 2/7 : MAINTAINER lanyan-docker-compose
---> Using cache
---> 737a49d0e30d
Step 3/7 : ENV MYSQL_ROOT_PASSWORD: tank123
---> Using cache
---> 0947d076c651
Step 4/7 : ENV MYSQL_DATABASE: tank
---> Using cache
---> 0c058f9687a5
Step 5/7 : ENV MYSQL_USER: tank
---> Using cache
---> c495d76887bf
Step 6/7 : ENV MYSQL_PASSWORD: tank123
---> Using cache
---> e2e4c83f84ad
Step 7/7 : EXPOSE 3306
---> Using cache
---> b2c7315d2ede
Successfully built b2c7315d2ede
Successfully tagged lanyan-mysql:5.7
#查看构建好的镜像
[root@master lanyan]# docker images | grep lanyan-mysql
lanyan-mysql 5.7 b2c7315d2ede 32 minutes ago 455MB
5、创建容器网络
# 创建自定义的容器网络
# --driver指定了网络模式为bridge
# --gateway指定了网关为172.22.0.1
# --subnet指定了子网为172.22.0.0/16
[root@master lanyan]# docker network create --driver bridge --subnet 172.22.0.0/16 --gateway 172.22.0.1 lanyan-net
dd941e5e029fb3124b17afb8fb7dfdee6ae4f7de97546f5012e881cdf9dc9156
[root@master lanyan]# docker network ls | grep lanyan
dd941e5e029f lanyan-net bridge local
查看一下名称叫lanyan-net的网络详情,如图所示
可以看到其中的子网是172.22.0.0/16,网关是172.22.0.1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VNezFQv6-1679633665368)(C:\Users\Kubernetes Spring\AppData\Roaming\Typora\typora-user-images\image-20230324122211518.png)]
6、编写docker-compose.yaml编排部署
#docker-compose版本,这里的3不要动
version: "3"
services:
# 数据库的镜像信息
db:
# 使用自己构建的lanyan-mysql:5.7的镜像
image: lanyan-mysql:5.7
# 数据库文件存放在宿主机的`~/data/mysql`位置,如果宿主机目录不存在,则会自动创建
volumes:
- /var/lib/docker/data/mysql:/var/lib/mysql
# 如果启动失败,则总是会重启。因为镜像有依赖的情况,不停重启可以保证依赖项启动成功后自己再运行
restart: always
#指定容器加入到自定义的lanyan-net网络中
networks:
- lanyan-net
#端口映射关系,宿主机端口:镜像端口
ports:
- "3306:3306"
# 蓝眼云盘的镜像
tank:
image: eyeblue/tank:3.0.5
#等待db(数据库容器)启动后再运行、连接
depends_on:
- db
#端口映射关系,宿主机端口:镜像端口
ports:
- "6010:6010"
# 如果启动失败,则总是会重启。因为镜像有依赖的情况,不停重启可以保证依赖项启动成功后自己再运行
restart: always
environment:
# mysql的端口
TANK_MYSQL_PORT: 3306
# Mysql的主机,和services的第一个节点一致。
TANK_MYSQL_HOST: db
# 数据库
TANK_MYSQL_SCHEMA: tank
# 数据库的用户名
TANK_MYSQL_USERNAME: tank
# 数据库的密码
TANK_MYSQL_PASSWORD: tank123
# 超级管理员的昵称。只能是英文或数字
TANK_ADMIN_USERNAME: admin
# 超级管理员邮箱,作为登录账号
TANK_ADMIN_EMAIL: admin@tank.eyeblue.cn
# 超级管理员密码,作为登录密码
TANK_ADMIN_PASSWORD: 123456
#指定容器加入到自定义的lanyan-net网络中
networks:
- lanyan-net
# 日志文件存放在宿主机的`~/data/tank/log`位置,如果宿主机目录不存在,则会自动创建
volumes:
# 上传文件存放在宿主机的`~/data/tank/matter`位置,如果宿主机目录不存在,则会自动创建
- /var/lib/docker/data/tank/log:/data/log
- /var/lib/docker/data/tank/matter:/data/matter
#声明容器加入到已经存在的网络
#name指定自定义的lanyan-net
networks:
lanyan-net:
external:
name: lanyan-net
7、docker-compose编排启动
[root@master lanyan]# docker-compose up -d
Creating lanyan_db_1 ... done
Creating lanyan_tank_1 ... done
[root@master lanyan]# docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------
lanyan_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
lanyan_tank_1 /data/build/tank Up 0.0.0.0:6010->6010/tcp
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGQItR5h-1679633665369)(C:\Users\Kubernetes Spring\AppData\Roaming\Typora\typora-user-images\image-20230324123630050.png)]
8、访问测试
在浏览器上访问http://ip:6010访问系统,会要求输入数据库连接地址,按docker-compose.yml配置的地址写入即可,host:db,database:tank,user:tank,password:tank123,可自行修改。然后安装提示,点击按钮创建库,及管理员账号即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E0k3BPli-1679633665369)(C:\Users\Kubernetes Spring\AppData\Roaming\Typora\typora-user-images\image-20230324123831499.png)]
8、访问测试
在浏览器上访问http://ip:6010访问系统,会要求输入数据库连接地址,按docker-compose.yml配置的地址写入即可,host:db,database:tank,user:tank,password:tank123,可自行修改。然后安装提示,点击按钮创建库,及管理员账号即可。
[外链图片转存中…(img-E0k3BPli-1679633665369)]