挂载实现:docker容器里nginx访问宿主机文件

前情提要:

1.docker 运行nginx容器作为代理服务器。

2.上传项目文件到宿主机的文件目录里。

3.nginx无法直接访问宿主机里的文件目录,会导致nginx代理无法跳转和访问项目。

如何解决呢?

挂载目录后镜像内就可以共享宿主机里的文件

挂载:指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件

docker操作命令:

安装容器后,运行容器并指定一些信息
docker run -d --name nginx01 -p 3334:80 nginx 
-d               后台运行 
--name           给容器命名 
-p 3334:80       将宿主机的端口3334映射到该容器的80端口
-v               是分别将本机目录映射到容器目录(-v /宿主机绝对路径目录:/容器内目录)



docker inspect   来获取元数据,包含挂载目录信息等。
docker inspect container_name | grep Mounts -A 20
docker inspect container_id | grep Mounts -A 20

使用 exec 命令进入容器:docker exec -i -t 784fd3b294d7 /bin/bash
使用 exit 退出容器 (使用 exec 方式进入容器,执行 exit 容器不会被关闭)
进入容器内部,通过 ls -a 命令查看文件夹


问题示例:nginx容器如何访问宿主机的项目静态文件。

1.查看nginx配置文件中的静态文件的访问地址:

2.配置文件中的文件目录,在宿主机中不存在。查看nginx容器内部文件目录。

得出:

该容器文件夹目录挂载了 宿主机的源目录,映射关系如下:

Project1:

Source: /home/application (宿主机目录)

Destination: /home/application_prd/  (nginx容器内目录)

Project2:

Source: /home/application_fy_prd

Destination: /home/application_fy_prd/

安装启动nginx容器时,设置了这些文件夹的映射关系。

文章中,所有linux docker操作命令已在文章开头展示。

参考资料:

Docker学习笔记

Docker快速入门总结笔记_Code0cean的博客-CSDN博客_docker快速入门

Docker:常用命令 与 挂载目录

来自 <Docker:常用命令 与 挂载目录 - 简书>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值