运行以下命令时,我可以成功访问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 ,但一无所获。)
答案 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,则可以在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。