Azure中配置和发布 Nginx docker到互联网

当Azure build一个Niginx docker 镜像时,无法通过浏览器访问这个镜像,于是想到了把这个网站发布到互联网中,这样就能验证网站是否正确。

本问跳过如何创建Azure Ubantu的虚拟机以及安装docker,直奔主题,如何发布一个Nginx 网站到互联网。

1. 安装Nginx,

     docker pull nginx

2.部署docker 

docker run -d -p 80:80 --name nginx-test-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

命令说明:

  • -p 80:80: 将容器的 80 端口映射到主机的 8082 端口。

  • --name nginx-test-web:将容器命名为 nginx-test-web。

  • -v ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

  • -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

  • -v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

~/nginx/www 为虚拟机路径,放置html文件的地址, /usr/share/nginx/html 为docker内部Nginx 默认的html文件映射地址。

~/nginx/conf/nginx.conf 为虚拟机nginx.conf 文件,可以修改此文件,然后运行上面命令则会将此文件映射到docker Nginx中。

~/nginx/logs 同理

如何验证上述docker 中关于Nginx路径是否正确呢?

运行docker ps, 获取此docker image id(比如 e86938b1f4c3), 然后运行下面命令进入docker 命令行中。

docker exec -it 9fbe362214a6 /bin/bash
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用

运行 上述命令后就可以进入docker环境的命令行中,检查各种配置或者文件是否正确了。

上面将网站已经发布到内网中,在命令行中使用 curl http://localhost:80 查看是否显示正确,如果显示正确进入下一步,发布到互联网中。

1.在Azure 新portal中,选择所有资源(All Resources),找到上面部署虚拟机的网络安全组,默认名字为 [虚拟机名-nsg].
2.进入网络安全组中,查看Inbound security rules,设置80端口,如下图。

 3. 在同一页面中,设置子网Subnets,将默认的子网与虚拟机对应的虚拟网络关联起来,则可以顺利被外网访问。

  4. 在本地电脑打开浏览器,查看 http://[虚拟机ip(SSH 输入的IP地址)],看是否页面正常访问。

 





 

转载于:https://www.cnblogs.com/bradwarden/p/11397810.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值