作为Docker的新手,我已经使用以下Dockerfile成功构建了一个Docker镜像,用于运行一个包含MySQL、Apache和PHP环境的Web服务:
FROM alpine:3.4
MAINTAINER SomeName@domain.tld
# 设置时区
ENV TIMEZOnE=Asia/Kolkata
# 更新软件源并安装必要的软件包
RUN echo "@community http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories && \
apk add --update \
mysql mysql-client \
apache2 \
curl wget \
tzdata \
php5-apache2 \
php5-cli \
php5-phar \
php5-zlib \
php5-zip \
php5-bz2 \
php5-ctype \
php5-mysqli \
php5-mysql \
php5-pdo_mysql \
php5-opcache \
php5-pdo \
php5-json \
php5-curl \
php5-gd \
php5-gmp \
php5-mcrypt \
php5-openssl
为了确保MySQL数据在容器停止或重启后不会丢失,可以通过将MySQL的数据目录挂载到主机上的一个持久性位置来实现。这通常通过在启动Docker容器时使用-v
选项来完成,例如:
docker run -v /path/on/host:/var/lib/mysql -d my_mysql_image
这样设置后,即使容器被删除,存储在主机上的MySQL数据也不会受到影响,从而实现了数据的持久化。