一、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 进行自定义配置。