如何使用Docker挂载资料卷部署Nginx
Nginx资料卷
nginx的作用有很多,比如正向代理、反向代理、负载均衡、透明代理等,一般情况下使用较多的是反向代理和负载均衡。我们只需要在本地同步配置文件,就能完成这些操作。要创建nginx的配置文件,首先需要在/etc/nginx/目录下新建一个名为nginx.conf的文件
nginx1目录下的nginx.conf也要创建,内容空着就行。接下来查看镜像是否正常:
如果还没有下载镜像,使用以下命令拉取镜像(默认最新版):
docker pull nginx
接下来运行容器:
docker run -itd -p 80:80 --name nginx001 -v /docker/nginx1/nginx.conf:/etc/nginx/nginx.conf nginx
解释一下:
-itd:开启交互模式,模拟终端,后台运行
-p 80:80:对应端口映射到宿主机
--name nginx001:自定义容器名称
-v /docker/nginx1/nginx.conf:/etc/nginx/nginx.conf:将宿主机的对应文件映射到nginx的配置文件
nginx:运行的镜像名称
运行以上命令以后,会返回随机字符串代表容器创建成功:
查看运行中的容器:
没有看到nginx001,肯定是运行的时候出错了,我们来看一下错误信息:
大概意思是配置文件中没有找到events节点。因为我们创建的文件内容是空的,所以启动容器的时候直接把对应目录下的nginx.conf给映射到nginx001里面的nginx.conf了,空配置的nginx当然无法运行。
现在vi刚才本地创建好的nginx.conf,开始配置:
之前我在docker上部署了一个简易的 .net core 程序,占用本地端口 1500 ,现在我把程序通过nginx反向代理到一个指定域名,并通过80端口访问。配置文件写好以后,重启容器nginx001:
现在nginx001就成功启动了,我们访问一下刚才指定的域名:
nginx的配置已经生效。
最后我们来尝试一下docker重启会不会导致配置初始化,重启docker:
启动两个容器:
访问页面:
资料卷已经成功应用,因为重启Docker后数据库没有被初始化。以后再也不怕docker宕机而数据丢失了。
补充
nginx配置文件中的 proxy_pass 属性,非docker环境配置的时候,localhost或127.0.0.1是可以正常生效的,但是在docker下nginx容器配置localhost或127.0.0.1时,有一个小坑导致无法完成实际的反向代理。因为容器运行时,docker会给它分配单独的ip和端口,然后把docker占用的ip映射到容器ip(比如docker下mysql启动后,使用localhost可以登陆客户端)。但nginx启动时,会先读取配置文件,配置正确的话才会运行,所以容器运行成功后,docker才把本地ip映射进去。只有当使用容器的 IP 直接访问时,如果配置文件中写的是 localhost 或 127.0.0.1,则会触发反向代理。在服务器使用Docker配置Nginx时,只需输入服务器的IP地址即可完成配置。
以上是如何使用Docker挂载资料卷部署Nginx的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

退出 Docker 容器的四种方法:容器终端中使用 Ctrl D 快捷键容器终端中输入 exit 命令宿主机终端中使用 docker stop <container_name> 命令宿主机终端中使用 docker kill <container_name> 命令(强制退出)

Docker 中将文件拷贝到外部主机的方法:使用 docker cp 命令:执行 docker cp [选项] <容器路径> <主机路径>。使用数据卷:在主机上创建目录,在创建容器时使用 -v 参数挂载该目录到容器内,实现文件双向同步。

重启 Docker 容器的方法:获取容器 ID(docker ps);停止容器(docker stop <container_id>);启动容器(docker start <container_id>);验证重启成功(docker ps)。其他方法:Docker Compose(docker-compose restart)或 Docker API(参考 Docker 文档)。

Docker 进程查看方法:1. Docker CLI 命令:docker ps;2. Systemd CLI 命令:systemctl status docker;3. Docker Compose CLI 命令:docker-compose ps;4. Process Explorer(Windows);5. /proc 目录(Linux)。

可以通过以下步骤查询 Docker 容器名称:列出所有容器(docker ps)。筛选容器列表(使用 grep 命令)。获取容器名称(位于 "NAMES" 列中)。

在 Docker 中启动 MySQL 的过程包含以下步骤:拉取 MySQL 镜像创建并启动容器,设置根用户密码并映射端口验证连接创建数据库和用户授予对数据库的所有权限

如何使用 Docker Desktop?Docker Desktop 是一款工具,用于在本地机器上运行 Docker 容器。其使用步骤包括:1. 安装 Docker Desktop;2. 启动 Docker Desktop;3. 创建 Docker 镜像(使用 Dockerfile);4. 构建 Docker 镜像(使用 docker build);5. 运行 Docker 容器(使用 docker run)。
