可以映射的,你把例子弄简单一点的,慢慢排查问题吧
要指定网络为bridge模式吧
1.你阿里云外部安全组没有开放8081端口
2.在ECS控制台测试链接的时候应该向8081发送请求而不是80
3.如果没有加`-d`参数将容器维持在后台运行,可能会导致你Ctrl+C后容器自动结束进程并退出
4.要确认这些信息你可以以root权限在ECS的命令行界面输入docker ps -a查看你目前所有容器状态和端口映射信息
非常感谢各位的回答,我已经解决上述问题.在阿里云的ECS部署Docker要有三个细节注意.
本例是 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" ]
这个回答有人解释这一点,
我在阿里云上成功安装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
外网测试