📜  Docker-构建Web服务器Docker文件(1)

📅  最后修改于: 2023-12-03 15:14:46.618000             🧑  作者: Mango

Docker - 构建Web服务器Docker文件

介绍

本文将介绍如何使用Docker构建一个基于Nginx和PHP的Web服务器Docker文件,方便部署Web应用。Docker是一个轻量级容器技术,可用于快速创建、部署和运行应用程序。

步骤
  1. 安装Docker

Docker官网提供了多个平台的安装包,可以在不同操作系统上安装使用。安装方式根据官方文档进行操作即可。

  1. 创建Dockerfile

在本地创建一个名为“Dockerfile”的文件,并编写以下代码:

FROM nginx:latest

RUN apt-get update && \
    apt-get install -y \
        curl \
        wget \
        git \
        unzip \
        libpng-dev \
        libjpeg-dev \
        libfreetype6-dev \
        libmcrypt-dev \
        libzip-dev \
        zlib1g-dev \
        libonig-dev \
        libxml2-dev \
        libxslt-dev \
        libyaml-dev \
        libicu-dev \
        libcurl4-openssl-dev \
        imagemagick \
        ghostscript \
        librabbitmq-dev \
        supervisor \
        cron \
        vim \
        unzip \
        net-tools \
        iputils-ping \
        supervisor \
        cron \
    && rm -rf /var/lib/apt/lists/*

RUN rm -rf /etc/nginx/conf.d/default.conf

COPY nginx.conf /etc/nginx/nginx.conf

WORKDIR /var/www/html

CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]

此代码是以nginx镜像作为基础镜像,安装一些常用的软件包和扩展,配置nginx和supervisord服务,同时启动supervisord服务,以便后续的服务能稳定运行。

  1. 编写nginx配置文件

在本地创建一个名为“nginx.conf”的文件,并编写以下代码:

user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
  worker_connections 1024;
}
http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for"';
  access_log /var/log/nginx/access.log main;
  client_max_body_size 100m;
  sendfile on;
  keepalive_timeout 65;
  include /etc/nginx/conf.d/*.conf;
}

此配置文件可以根据自己的需要进行一些修改,例如:端口号、日志格式等。

  1. 构建镜像

在终端中运行以下命令,构建镜像:

docker build -t web-server .

注意点:命令中的"."表示当前目录下的Dockerfile文件。"-t"参数指定镜像的名称。

  1. 运行容器

在终端中运行以下命令,启动容器:

docker run --name my-web-server -p 80:80 -v /path/to/your/web:/var/www/html web-server

注意点:命令中的"-p"参数映射容器的80端口到主机的80端口;"-v"参数将主机的web目录挂载到容器的/var/www/html目录中。

  1. 测试服务

在浏览器中访问localhost:80,即可看到Nginx的欢迎页面,表示服务已成功运行。

  1. 结尾

至此,我们已成功地使用Docker构建了一个Web服务器,并可快速部署Web应用。如有任何问题,欢迎留言讨论。

参考资料