如何使用ansible剧本在远程计算机上的nginx docker容器上部署网站?

时间:2019-07-12 01:39:03

标签: azure docker nginx ansible

我可以在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地址。

是否有其他教程可以帮助我实现自己想要的?

谢谢。

1 个答案:

答案 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容器的运行方式如下:

enter image description here

最后一步,您需要允许NSG中的端口80与运行nginx的VM关联。然后,您可以在浏览器中访问VM外部的Nginx。