我可以在Azure上运行我的ubuntu虚拟机之一。我正在尝试在远程计算机(主机)上的Nginx docker容器上托管一个网站。
我已经完成了此链接提供的所有操作 http://www.inanzzz.com/index.php/post/6138/setting-up-a-nginx-docker-container-on-remote-server-with-ansible
当我运行curl命令时,它将在终端上显示index.html的所有内容作为输出,而当我尝试在浏览器中访问网站(“欢迎使用Nginx”页面)时,它什么也没有显示。 我不确定在本教程中显示的docker / .env文件中为NGINX_IP变量分配哪个IP地址。
是否有其他教程可以帮助我实现自己想要的?
谢谢。
答案 0 :(得分:1)
对于您的问题,问题在于您没有将容器端口映射到主机端口。这样您就可以访问主机内部的容器。
解决方案是您需要像这样在docker-compose文件中映射端口:
version: '3'
services:
nginx_img:
container_name: ${COMPOSE_PROJECT_NAME}_nginx_con
build:
context: ./nginx
ports:
- "80:80"
networks:
public_net:
ipv4_address: ${NGINX_IP}
networks:
public_net:
driver: bridge
ipam:
driver: default
config:
- subnet: ${NETWORK_SUBNET}
docker容器的运行方式如下:
最后一步,您需要允许NSG中的端口80与运行nginx的VM关联。然后,您可以在浏览器中访问VM外部的Nginx。