介绍
Docker 是一个为了方便地创建、部署和运行应用程序的开源平台,而 Nginx 是一个流行的开源 Web 服务器,通常被用于反向代理和负载均衡。本文将介绍如何在 Docker 中安装和配置 Nginx,以便于在开发和生产环境中使用。
安装
确保已经安装了 Docker,可通过官方网站或其他适合您的平台上的指南进行安装。接下来,需要使用 Dockerfile 定义一个镜像,Dockerfile 是一个包含在 Docker 中定义构建步骤的基本构建块。
- 创建一个
Dockerfile
文件:
FROM nginx:latest COPY nginx.conf /etc/nginx/nginx.conf
- 新建一个
nginx.conf
文件:
// javascriptcn.com 代码示例 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://web:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
- 运行以下命令构建镜像:
docker build -t my-nginx:latest .
配置
- 运行以下命令启动新的容器:
docker run -p 80:80 --name my-nginx --link web:web -d my-nginx:latest
解释:
-p
参数将容器的80
端口映射到主机的80
端口--name
参数指定容器的名称--link
参数将web
容器添加到$IP
变量中-d
参数以后台模式运行容器
最后,访问
http://localhost
应该会看到web
容器的内容!
案例
为了更好地理解,这里给出完整案例代码。
- 创建一个
Dockerfile
文件:
FROM nginx:latest COPY nginx.conf /etc/nginx/nginx.conf
- 新建一个
nginx.conf
文件:
// javascriptcn.com 代码示例 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://web:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
- 启动两个容器,一个运行 Nginx,另一个运行 Flask Web 应用程序:
docker run -d --name web -e FLASK_APP=web.py -p 5000:5000 tiangolo/uwsgi-nginx-flask:python3.8 docker run -p 80:80 --name my-nginx --link web:web -d my-nginx:latest
- 访问
http://localhost
应该会看到 Flask Web 应用程序!
总结
这篇文章介绍了如何在 Docker 中安装和配置 Nginx,通过选择适当的构建块,可以轻松地在 Docker 中启动 Nginx 和任何其他服务。Docker 的使用方便性和 Nginx 的反向代理等功能,可以帮助开发者更加高效地开发应用程序。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/653635a17d4982a6ebe249d8