Docker如何构建php-nginx-alpine镜像

2023-04-16 09:28:00 docker php 构建

Docker 是一个开源的容器引擎,可以让开发者将应用程序组装在轻量级、可移植的容器中,从而实现跨多个平台的部署。Docker 可以使用容器来构建 php-nginx-alpine 镜像。

首先,需要准备一个 Dockerfile 文件,其中包含了构建镜像所需的指令。Dockerfile 文件的第一行必须是 FROM 指令,用于指定基础镜像。在构建 php-nginx-alpine 镜像时,基础镜像应为 Alpine Linux,因此第一行应为 FROM alpine:latest。

接下来,在 Dockerfile 中运行 RUN 指令,用于安装 php 和 nginx。RUN 指令的格式为 RUN ,其中 command 为要执行的命令。要安装 php 和 nginx,可以使用以下命令:

RUN apk update
RUN apk add php7 php7-fpm php7-opcache php7-gd php7-mysqli php7-zlib php7-curl php7-mbstring php7-json php7-session
RUN apk add nginx

上述命令中的 apk 是 Alpine Linux 的包管理工具,update 指令用于更新包列表,add 指令用于安装包。上述指令会安装 php7、php7-fpm、php7-opcache、php7-gd、php7-mysqli、php7-zlib、php7-curl、php7-mbstring、php7-json、php7-session 和 nginx。

接下来,可以使用 COPY 指令将配置文件复制到容器中。COPY 指令的格式为 COPY ,其中 src 为源文件,dest 为目标路径。要将配置文件复制到容器中,可以使用以下指令:

COPY php.ini /etc/php7/
COPY nginx.conf /etc/nginx/
COPY www.conf /etc/php7/php-fpm.d/

上述指令中,php.ini 为 php 的配置文件,nginx.conf 为 nginx 的配置文件,www.conf 为 php-fpm 的配置文件。

最后,可以使用 CMD 指令指定容器启动时要执行的命令。CMD 指令的格式为 CMD ,其中 command 为要执行的命令。要启动 php-fpm 和 nginx,可以使用以下指令:

CMD ["/usr/sbin/php-fpm7", "-F"]
CMD ["/usr/sbin/nginx", "-g", "daemon off;"]

上述指令会启动 php-fpm 和 nginx。

最后,可以使用 docker build 命令来构建镜像。docker build 命令的格式为 docker build ,其中 path 为 Dockerfile 所在的路径,options 为可选参数。要构建 php-nginx-alpine 镜像,可以使用以下命令:

docker build -t : 

其中,image-name 为镜像的名称,tag 为镜像的标签,path 为 Dockerfile 所在的路径。

总而言之,构建 php-nginx-alpine 镜像的步骤如下:

  1. 准备 Dockerfile 文件,其中第一行为 FROM alpine:latest;
  2. 在 Dockerfile 中运行 RUN 指令,安装 php 和 nginx;
  3. 使用 COPY 指令将配置文件复制到容器中;
  4. 使用 CMD 指令指定容器启动时要执行的命令;
  5. 使用 docker build 命令构建镜像。

相关文章