index.html文件内容与实际访问结果不同

来源:3-2 dockerfile实战

天上小月牙

2018-12-04 18:11

https://img1.mukewang.com/5c0652070001130707470622.jpg

进入容器内部查看index.html文件已经改成“docker”了,为何访问还是显示“nginx”?https://img2.mukewang.com/5c0652600001d5c709200522.jpg

写回答 关注

2回答

  • 天上小月牙
    2018-12-19 17:34:53

    进入容器内部后,通过nginx -V命令,查到nginx.conf文件路径:

    https://img2.mukewang.com/5c1a084200019a0014640272.jpg

    通过vim /etc/nginx/nginx.conf命令查看该文件,发现http模块中并没有server模块,但是发现有一行:

    https://img2.mukewang.com/5c1a09040001feb704800062.jpg

    通过cd /etc/nginx/sites-enabled/命令查看:

    https://img3.mukewang.com/5c1a093f0001daeb10460122.jpg

    通过vim /etc/nginx/sites-available/default命令打开该文件,看到了server模块和默认页面读取的路径和文件:

    https://img3.mukewang.com/5c1a09d30001d61a07990532.jpg

    于是切换至/var/www/html目录:

    https://img4.mukewang.com/5c1a0ae40001b36f08280103.jpg

    发现默认页面读取的就是这个index.nginx-debian.html文件,打开:

    https://img2.mukewang.com/5c1a0ba200017bc406980510.jpg

    而我的Dockerfile是这么写的:

    https://img2.mukewang.com/5c1a0bd70001677406530177.jpg

    COPY index.html /usr/share/nginx/html(此处想当然了,然而经过上述分析,默认页面读取的html文件根本不是/usr/share/nginx/html目录下的index.html!)

    因此在Dockerfile文件中应该写COPY index.html /var/www/html,也就是和老师视频中所写的一样,我之所以会写COPY index.html /usr/share/nginx/html,是因为老师提到这个目录因人而异,因此我通过find / -name "index.html"命令找到了/usr/share/nginx/html/index.html,想当然的改动了这个文件,而nginx根本不读取它。

    帝国大学

    sudo docker run -v /usr/share/nginx/html -d nginx

    2021-05-01 11:34:57

    共 1 条回复 >

  • xf_joke
    2018-12-12 22:24:18

    应该是文件路径不对了,根本没有访问到你改的文件。

    try399... 回复天上小月牙

    只是看看

    2019-04-15 15:09:24

    共 2 条回复 >

Docker入门

再不学点Docker你就out啦!

97053 学习 · 242 问题

查看课程

相似问题