这次部署的是一个图床(Lsky-Pro),可以让你的图片用链接的方式出现,可以使用在你的博客上面,这个图床还需要使用数据库来存储数据所以我们这里就要部署两个容器
1、拉取MySQL镜像:
打开飞牛的docker,在镜像仓库里面搜索MySQL
然后下载
MySQL容器设置:
下载好镜像后,我们先打开文件管理器,创建一个MySQL文件夹来存储MySQL文件配置,然后在MySQL文件夹里面在新建log和mysql这两个文件夹,log是用来保存容器日志的,MySQL是用来存储配置文件的,这个文件夹的保存位置看大家的习惯
建好文件夹后我们回到docker的本地镜像里找到我们下载好的MySQL镜像点击运行,看图片配置
MYSQL_ROOT_PASSWORD=root 这个环境变量的意思是MySQL的root账号密码使用root作为密码,省去了我们后期还要使用ssh命令来修改root的密码,最后面点击下一步,检查设置没问题后点击创建开始运行MySQL容器,这样你就成功的创建了一个能够运行的容器
2、拉取phpmyadmin镜像:
因为我们已经有MySQL数据库,但是MySQL只能使用命令来使用它,这对于新手来说很麻烦,所以我们就在创建一个容器,使用图像界面来管理我们的数据库;
和上面一样,我们想到镜像仓库拉取phpmyadmin镜像
phpmyadmin容器创建设置:
phpmyadmin环境变量,看情况添加
PMA_ARBITRARY -设置为1时,将允许连接到任意服务器 PMA_HOST -定义MySQL服务器的地址/主机名 PMA_VERBOSE -定义MySQL服务器的详细名称 PMA_PORT -定义MySQL服务器的端口 PMA_HOSTS -定义逗号分隔的MySQL服务器的地址/主机名列表 PMA_VERBOSES -定义以逗号分隔的MySQL服务器详细名称列表 PMA_PORTS -定义以逗号分隔的MySQL服务器端口列表 PMA_USER和PMA_PASSWORD-定义用于配置身份验证方法的用户名 PMA_ABSOLUTE_URI -定义面向用户的URI HIDE_PHP_VERSION-如果定义,则将隐藏php版本(expose_php = Off)。设置为任何值(例如HIDE_PHP_VERSION = true)。 UPLOAD_LIMIT -如果设置,将覆盖apache和php-fpm的默认值(默认值为2048 kb) PMA_CONFIG_BASE64 -如果设置,将使用变量的base64解码内容覆盖默认的config.inc.php PMA_USER_CONFIG_BASE64 -如果设置,将使用变量的base64解码内容覆盖默认的config.user.inc.php
下面我们在游览器上面输入飞牛ip:端口进入phpmyadmin的图像界面,我这里设置 的端口号是5623,飞牛的ip地址是192.168.100.53
哪我都phpmyadmin的地址就是http://192.168.100.53:5623(注意 “" : ” 是英文的:)
这里使用的账号密码是MySQL数据库的root账号和密码
我们要创建一个图床使用的数据库
3、拉取Lsky-pro镜像:
Lsky-pro容器设置:
我们要创建一个文件来保存图床的配置文件
到这里我们这三个容器都成功运行了,下面我们要开始设置lsky-pro
游览器新建一个窗口输入飞牛ip地址+lsky端口号我这里的是:192.168.100.53:8289
这里基本不会出现问题,直接点击下一步
没问题就可以点击安装了,安装成功后会出现下面界面
后面的使用教程可以自行百度
docker-compose部署案例
这里我们跳过创建目录的过程,直接讲解docker-compose部署lsky-pro
按要求来改yml文件,都写好了批注
version: '3'
services:
lsky-pro:
container_name: lsky-pro
image: dko0/lsky-pro
restart: always
volumes:
- ./data/html:/var/www/html #映射到本地
ports:
- 7791:80
environment:
- MYSQL_HOST=mysql
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
mysql:
image: mysql:8.0
container_name: lsky-pro-db
restart: always
environment:
- MYSQL_DATABASE=lsky-pro
- MYSQL_USER=lsky-pro
- MYSQL_PASSWORD=lsky-pro
- MYSQL_ROOT_PASSWORD=lsky-pro
volumes:
- ./data/db:/var/lib/mysql
以下是对这个 docker - compose.yml文件的批注:
整体结构和功能
这个 docker - compose.yml文件定义了一个包含两个服务(lsky - pro和 mysql)的 Docker Compose 项目,用于部署 lsky - Pro 图床应用及其依赖的 MySQL 数据库。
lsky - pro 服务
container_name: lsky - pro
为 lsky - Pro 服务的容器指定了一个易于识别的名称,方便后续对该容器进行操作,比如使用 docker stop/start等命令时可以直接使用这个名称。
image: dko0/lsky - pro
指定了 lsky - Pro 服务所使用的 Docker 镜像。这里使用了自定义的镜像 dko0/lsky - pro,假设这个镜像已经构建好并且包含了运行 lsky - Pro 应用所需的所有软件和配置。
restart: always
配置容器在退出时总是自动重启。这对于保证服务的持续可用性很有用,例如在服务器重启或者容器意外停止的情况下,lsky - Pro 服务能够自动恢复运行。
volumes部分
-./data/html:/var/www/html:将本地目录 ./data/html挂载到容器内的 /var/www/html目录。这样做的好处是可以方便地在本地修改和更新 lsky - Pro 的代码或配置文件(如果有需要),并且数据可以持久化存储在本地,不会因为容器的删除或重新创建而丢失。
ports部分
- 7791:80:将容器内的 80 端口(通常是 lsky - Pro 应用监听的端口)映射到宿主机的 7791 端口。这意味着可以通过访问宿主机的 7791 端口来访问 lsky - Pro 应用,实现了容器内服务与外部网络的通信。
environment部分 - MYSQL_HOST=mysql:设置 lsky - Pro 应用连接的 MySQL 数据库主机名。这里使用了 mysql,是因为在 Docker Compose 网络中,服务之间可以通过服务名称相互访问,另一个服务 mysql的容器名称就是 lsky - pro - db,这样配置使得 lsky - Pro 能够找到对应的数据库服务。
- MYSQL_DATABASE=lsky - pro、- MYSQL_USER=lsky - pro、- MYSQL_PASSWORD=lsky - pro:分别指定了 lsky - Pro 应用连接 MySQL 数据库所使用的数据库名、用户名和密码,确保了应用与数据库之间的认证和数据访问的正确性。
mysql 服务
image: mysql:8.0
使用官方的 MySQL 8.0 版本镜像来创建数据库容器,保证了数据库的稳定性和功能完整性。
container_name: lsky-pro-db
为 MySQL 容器指定了名称,方便管理。
restart: always
与 lsky - Pro 服务容器一样,保证 MySQL 数据库在遇到问题时能够自动重启,维持服务的可用性。
environment部分 - MYSQL_DATABASE=lsky - pro、- MYSQL_USER=lsky - pro、- MYSQL_PASSWORD=lsky - pro、- MYSQL_ROOT_PASSWORD=lsky - pro:配置了 MySQL 数据库的相关参数,包括创建的数据库名、普通用户及其密码,以及 root 用户的密码。这些环境变量用于初始化 MySQL 数据库的设置,确保安全性和应用的正确连接。
volumes部分
-./data/db:/var/lib/mysql:将本地目录 ./data/db挂载到容器内的 /var/lib/mysql目录,用于持久化存储 MySQL 的数据文件。这样即使容器被删除或重新创建,数据库中的数据仍然可以保留。