百科问答小站 logo
百科问答小站 font logo



阿里云 ECS 的Docker为什么无法端口映射? 第1页

  

user avatar   zhanyongzhi 网友的相关建议: 
      

可以映射的,你把例子弄简单一点的,慢慢排查问题吧


user avatar   kayaklee 网友的相关建议: 
      

要指定网络为bridge模式吧


user avatar   wang-jia-hao-99-49 网友的相关建议: 
      

1.你阿里云外部安全组没有开放8081端口

2.在ECS控制台测试链接的时候应该向8081发送请求而不是80

3.如果没有加`-d`参数将容器维持在后台运行,可能会导致你Ctrl+C后容器自动结束进程并退出

4.要确认这些信息你可以以root权限在ECS的命令行界面输入docker ps -a查看你目前所有容器状态和端口映射信息


user avatar   bluedrum 网友的相关建议: 
      

非常感谢各位的回答,我已经解决上述问题.在阿里云的ECS部署Docker要有三个细节注意.


1.必须在Dockerfile 第二句显式写上EXPOSE 语句才会进行端口映射.

本例是 EXPOSE 8081.

我的Dockerfile

       FROM java:8 EXPOSE 8081 VOLUME /tmp ADD bluedrum-spring-boot-demo-1.0-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]     


2. 阿里云的内网eth0 网段正好跟Docker 的虚拟网卡都是 172 网段,有冲突.

这个回答有人解释这一点,

我在阿里云上成功安装docker,但是docker却不能运行起来,而我在腾讯云上安装的 docker 没有出现任何问题?


我的做法把虚拟网卡的网段换一下,换成 192.网段即可. 上述回答是2014的,现在docker做法是写配置文件 /etc/docker/daemon.json .


我成功的daemon.json,其中bip 就指明docker0的地址

       {   "bip": "192.168.1.5/24",  "debug": true,  "registry-mirrors": ["https://fzxnxpz6.mirror.aliyuncs.com"] }     


用ifconfig 看,确定变了

       docker0   Link encap:Ethernet  HWaddr 02:42:db:de:06:15             inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:22 errors:0 dropped:0 overruns:0 frame:0           TX packets:29 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:0            RX bytes:2506 (2.5 KB)  TX bytes:2704 (2.7 KB)  eth0      Link encap:Ethernet  HWaddr 00:16:3e:0e:70:d3             inet addr:172.18.91.239  Bcast:172.18.95.255  Mask:255.255.240.0           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:14356 errors:0 dropped:0 overruns:0 frame:0           TX packets:8986 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000            RX bytes:1390924 (1.3 MB)  TX bytes:1431753 (1.4 MB)     


启动语句

docker -D run -d -p 8081:8081 hxy


用docker ps 查看,映射成功了(0.0.0.0:8081->8081/tcp )

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
908226560bad hxy "sh -c 'java $JAVA_O…" 40 seconds ago Up 39 seconds 0.0.0.0:8081->8081/tcp upbeat_mcclintock


本机测试成功

curl localhost:8081
Hello Docker World2

3.外网访问8081端口,必须在ECS控制台的安全组里配置 入端口 8081可访问.


外网测试




  

相关话题

  什么是镜像问题? 
  腾讯云、阿里云和百度云的优劣势各是什么? 
  12306 能扛得住明星出轨这种流量冲击吗? 
  如何选择香港服务器? 
  如何看待阿里投入100亿,要孵化10个米家? 
  大家怎么看云服务器价格?云服务器适合什么规模的企业使用? 
  如何看待国内代码托管服务 Gitee 的域名被阿里云停止解析? 
  初次拥有自己的云服务器可以用来干嘛? 
  有一个阿里云服务器能干什么? 
  大家怎么看云服务器价格?云服务器适合什么规模的企业使用? 

前一个讨论
锤子的坚果R1真的销量惨淡么?
下一个讨论
如何看待锤子科技515发布会公然作假:使用苹果系统,而非锤子系统演示所谓TNT的部分功能?





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利