docker安装nginx(神坑记录)

Docker安装Nginx问题解决
本文记录了在Docker环境下安装Nginx时遇到的错误:无法正确挂载配置文件。通过直接挂载整个Nginx配置目录的方式解决了问题。

docker安装nginx碰见的问题记录

  • 错误描述
 mounting "/usr/local/nginx.conf" to rootfs at "/etc/nginx/nginx.conf" caused: mount through procfd: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)?
  • 查看网上很多文章,有说权限问题,有说将html,logs等映射出来,都没有解决

  • 后,仔细查看报错信息,说的不是个文件,虽然我启动redis,同样是挂载出文件,但是nginx就不行,在尝试了所有网上方法都没有解决的情况下,突然灵机一动,如果我将docker容器中/etc/nginx整体挂载出来呢?于是乎:

    • 先不带参数启动docker
    docker run -d -p 80:80 --name my-nginx nginx
    
    • 然后将文件拷贝出来
    docker cp my-nginx:/etc/nginx /etc/nginx
    
    • 然后停止docker
    docker stop my-nginx
    
    • 然后删除容器
    docker rm my-nginx
    
    • 然后启动docker,挂载文件
    docker run -d -p 80:80 --name my-nginx -v /etc/nginx:/etc/nginx nginx
    
  • 于是,神奇的一幕发生了,竟然真的启动起来了,于是乎,我就不再纠结为什么启动不起来了,特此记录,希望可以帮助到和我同样问题的.

### 如何在 Docker安装和配置 Nginx #### 准备工作 为了确保顺利部署,在服务器上需预先安装DockerDocker Compose。对于 Linux CentOS 7 的环境来说,确认已安装 Docker version 26.1.3 及 Docker Compose version v2.27.1 是必要的前提条件[^1]。 #### 获取 Nginx 镜像 通过执行命令 `docker pull nginx:stable` 来获取官方发布的稳定版 Nginx 镜像。此操作会下载指定标签(tag)为 "stable" 的镜像到本地仓库中。如果省略 ":stable" 参数,默认情况下将会拉取最新的可用版本即 "latest"[^2]。 ```bash $ docker pull nginx:stable ``` #### 启动并运行容器 创建一个新的名为 mynginx 的容器实例,并将其80端口映射至宿主机相同编号的端口以便外部访问。同时设置卷挂载来实现配置文件以及日志目录的数据持久化存储: ```bash $ docker run --name mynginx -v /path/to/nginx/conf:/etc/nginx/conf.d \ -v /path/to/nginx/html:/usr/share/nginx/html \ -v /path/to/nginx/logs:/var/log/nginx \ -p 80:80 -d nginx:stable ``` 上述命令中的 `-v` 参数用于定义三个不同类型的绑定装载点:分别是自定义位置下的 Nginx 配置文件夹、网页根目录及日志记录路径;而 `-p` 则指定了端口号转发规则[-1]。 #### 测试服务状态 启动完成后可通过浏览器或其他 HTTP 客户端工具向该机器 IP 地址发起请求验证 Web 页面是否正常展示。另外也可以利用如下指令检查当前正在运行的服务列表及其详情信息: ```bash $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES <container_id> nginx:stable "/docker-entrypoint.…" <created_time> Up <up_time> 0.0.0.0:80->80/tcp mynginx ``` 以上步骤涵盖了基于 Docker 平台快速搭建起一个功能完备且易于管理维护的 Nginx 实例所需的关键环节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值