如何在Digitalocean访问Docker容器?

时间:2018-09-21 13:28:07

标签: docker digital-ocean

运行以下命令时,我可以成功访问localhost的 127.0.0.1:80

docker run -p 127.0.0.1:80:80 --name Mynginx -dt nginx
docker exec -it Mynginx bash

但是,如果我在digitalocean的DROPLETS上运行命令,现在如何访问它? (我尝试访问 DROPLETS的IP地址:80 ,但一无所获。)

2 个答案:

答案 0 :(得分:0)

您需要EXPOSE端口。有关如何操作的更多信息,请参见documentation

从命令行运行

如果从命令行运行容器,则可以使用-p标签映射端口。您可以映射多个端口。

docker run -dt -p 80:80 --name Mynginx nginx

docker run -dt -p 80:80 -p 443:443 --name Mynginx nginx

Docker-compose

如果您使用的是docker-compose,则可以在yaml文件中添加EXPOSE标签。

version: '2.3'
services:
  my_container:
    container_name: "Mynginx"
    image: nginx:latest
    expose:
      - "80"

答案 1 :(得分:0)

您需要更新Droplet防火墙设置,以允许传入连接到端口:80。要更新它,请选择您的液滴。

然后转到Networking-> Manage Firewalls-> Create Firewall

然后在Inbound Rules下通过从下拉菜单中选择HTTP创建新的HTTP规则。向下滚动并将此防火墙应用到您的Droplet,那么您应该能够在端口:80上接收入站流量。您必须为要打开的任何其他端口添加类似的规则。

有关更多详细信息,请参见here