简介
图床服务是一种用于存储和分享图片的服务。随着互联网的发展,图床服务变得越来越受欢迎。本文将详细介绍如何使用Docker搭建一个图床服务,并实现与MySQL的高效连接。
准备工作
在开始之前,请确保您的系统中已经安装了以下软件:
- Docker
- Docker Compose
- MySQL
步骤一:创建Dockerfile
首先,我们需要创建一个Dockerfile来构建图床服务的镜像。以下是一个简单的Dockerfile示例:
FROM php:7.4-apache
# 安装所需的PHP扩展
RUN docker-php-ext-install mysqli pdo_mysql
# 复制应用程序文件
COPY . /var/www/html
# 设置Apache站点配置
COPY conf/apache.conf /etc/apache2/sites-available/000-default.conf
# 启用Apache站点配置
RUN a2ensite 000-default.conf
# 开放80端口
EXPOSE 80
# 启动Apache和PHP-FPM
CMD ["apache2-foreground"]
在这个Dockerfile中,我们使用了官方的PHP镜像,并安装了mysqli和pdo_mysql扩展。同时,我们还复制了应用程序文件到容器中,并设置了Apache站点配置。
步骤二:创建Docker Compose文件
接下来,我们需要创建一个Docker Compose文件来定义图床服务的组件。以下是一个简单的Docker Compose文件示例:
version: '3.8'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: image_db
MYSQL_USER: image_user
MYSQL_PASSWORD: image_password
volumes:
- db_data:/var/lib/mysql
app:
build: .
ports:
- "80:80"
depends_on:
- db
volumes:
db_data:
在这个Docker Compose文件中,我们定义了两个服务:db和app。db服务是基于MySQL镜像的,并设置了数据库密码和数据库名称。app服务是基于我们刚刚创建的Dockerfile的,并将80端口映射到宿主机的80端口。
步骤三:运行Docker Compose
现在,我们可以使用以下命令来启动图床服务:
docker-compose up -d
这将启动db和app服务,并将它们放在后台运行。
步骤四:配置MySQL连接
在应用程序中,我们需要配置MySQL连接。以下是一个简单的PHP示例:
<?php
$host = 'db';
$dbname = 'image_db';
$user = 'image_user';
$pass = 'image_password';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
在这个示例中,我们使用PDO类来连接MySQL数据库。请确保将$host、$dbname、$user和$pass变量的值替换为您在Docker Compose文件中设置的值。
总结
通过以上步骤,您已经成功搭建了一个基于Docker的图床服务,并实现了与MySQL的高效连接。您可以使用这个图床服务来存储和分享图片,并享受其带来的便利。