您的位置:

Docker 安装 Nginx

一、Docker 安装

Docker 是一个开源项目,它可以帮助我们将应用程序和它们的依赖打包成一个容器,并且可以在不同的服务器上,不同的操作系统上运行。这样就有效地解决了在不同环境中部署应用程序的问题。

要在 Linux 操作系统上安装 Docker,需要执行以下步骤:

$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo systemctl start docker
$ sudo systemctl enable docker

二、Docker 镜像

Docker 镜像是用于创建 Docker 容器的一个模板。它包含了操作系统、应用程序和它们的依赖。Docker 镜像可以从 Docker Hub 或者自己创建。

要拉取官方的 Nginx 镜像,需要执行以下命令:

$ sudo docker pull nginx

可以使用以下命令来列出已经拉取的镜像:

$ sudo docker images

如果需要自己创建 Docker 镜像,可以使用 Dockerfile 文件。

Dockerfile 文件示例:

FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install nginx -y
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

上述 Dockerfile 文件描述了一个从 Ubuntu 最新版本开始构建的镜像,然后更新系统并安装 Nginx,并将容器的 80 端口暴露出来,并启动 Nginx 服务。

要构建 Docker 镜像,需要执行以下命令:

$ sudo docker build -t mynginx .

其中,-t mynginx 表示给构建的镜像取一个名字为 mynginx。

可以使用以下命令运行已经构建好的镜像:

$ sudo docker run -d -p 80:80 mynginx

其中,-d 表示容器在后台运行,-p 80:80 表示将容器的 80 端口映射到宿主机的 80 端口,mynginx 表示运行的镜像名。

三、使用 Docker Compose

Docker Compose 是一个工具,它可以帮助我们定义和运行多个 Docker 容器。使用 Docker Compose,我们可以快速地启动一组容器,并且可以统一管理这些容器。

要使用 Docker Compose,需要创建一个 docker-compose.yml 文件。

docker-compose.yml 文件内容示例:

version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "80:80"

上述示例定义了一个 service 名称为 nginx,使用 Nginx 官方镜像,将它的容器端口 80 映射到宿主机的 80 端口。

在 docker-compose.yml 所在目录执行以下命令启动容器:

$ sudo docker-compose up

如果需要在后台运行,可以加上 -d 参数:

$ sudo docker-compose up -d

四、使用 Nginx 配置文件

如果需要对 Nginx 进行配置,可以将自己的配置文件挂载到容器里面。

示例:

将新建一个目录 mynginx,将容器启动命令改为:

$ sudo docker run -d -p 80:80 -v /pathto/mynginx:/etc/nginx/conf.d mynginx

其中,-v /pathto/mynginx:/etc/nginx/conf.d 表示将 mynginx 目录挂载到容器的 /etc/nginx/conf.d 目录下。

在 mynginx 目录下新建一个配置文件 my.conf,内容如下:

server {
    listen 80;
    server_name mydomain.com;
    location / {
        root /var/www/html;
        index index.html;
    }
}

然后重启容器就可以使用自定义的配置文件了。

$ sudo docker restart container_id

五、总结

本文对 Docker 安装 Nginx 做了详细的阐述,并从 Docker 安装、Docker 镜像、Docker Compose、使用 Nginx 配置文件这几个方面进行了讲解。Docker 镜像是容器化部署的基础,Docker Compose 可以帮助我们更方便地管理一组容器,使用 Nginx 配置文件可以对 Nginx 进行自定义配置。