美文网首页
Nginx Docker 测试项目

Nginx Docker 测试项目

作者: V_Jan | 来源:发表于2020-07-10 11:18 被阅读0次

参考 阮一峰 Nginx 容器教程

使用场景1 本地用windows系统,安装windows docker,启动windows docker服务后,就可以在DOS里或者GitBash里使用docker命令来操作。
这个图标意味着docker服务已经启动:

image.png
打开GitBash,开始使用docker命令:
image.png
在windows中使用docker会有很多限制,比如以下是我遇到的:
  1. 在做宿主机和容器之间的挂载时,需要设置windows盘符共享:
    右击windows docker 鲸鱼图标,选择setting,在下面页面中勾选要共享的盘符。

    image.png
    但不幸的是,这并没有解决问题,接下来你可能会看到防火墙问题
    image.png
    但是我查看了防火墙设置并没有拦住docker, 万不得已,暂时关闭了所有防火墙,就可以了。
    image.png
    image.png
    image.png
    网络上有人找到了具体解决的办法,看起来跟防火墙没有关系,但是毕竟解决了,我用他的方法,没办法卸载他说的那个服务。当你可以试试看。
    https://blog.olandese.nl/2017/05/03/solve-docker-for-windows-error-a-firewall-is-blocking-file-sharing-between-windows-and-the-containers/#comment-99
  2. 如果要启动-t(tty)服务。比如docker exec -it $containerId /bin/bash,那么命令钱要加winpty, 否则你会收到这样的错误:the input device is not a TTY. If you are using mintty, try prefixing the command with 'winpty'

  3. 无法完美的做docker cp, 因为windows无法做软连接。也是因为这个原因,我转投到一台远程的Linux测试机上。

$ docker container cp mynginx:/etc/nginx .

使用场景2 远程Linux物理机
因为这台物理机和我的笔记本在同一个局域网,其实就在同一个办公室的机房里,所以我用GitBash, ssh+key的方式登录(也可以用secureCRT, secureCRT的目标是linux服务器,非windows)
在linux上一切顺利,除了下面这个问题:

当我启动127.0.0.1(或者127.0.0.2)8071端口用于映射docker container的80端口的时候,服务正常启动,但是当我想用本地windows来测试部署在这个ip上的nginx是否工作的时候却不行了。

$ docker container run \
  --rm \
  --name mynginx \
  --volume "$PWD/html":/usr/share/nginx/html \
  --volume "$PWD/conf":/etc/nginx \
  -p 127.0.0.2:8071:80 \
  -d \
  nginx

telnet不通, 说明这个端口无法在internet上工作,意味着这个服务器的8071端口么有被开放。


image.png

原因是网卡问题:因为我再命令的启动的端口是127.0.0.2这个是本地轮询的端口,而我在网页上访问的是http://192.168.x.x:8071, 所以启动container的时候,我用的端口应该是192.168.x.x:8071:80要么是0.0.0.0:8071:80, 后者匹配那台linux物理机的所有的IP。

image.png

相关文章

网友评论

      本文标题:Nginx Docker 测试项目

      本文链接:https://www.haomeiwen.com/subject/cdypcktx.html