AWS ECS奇怪的docker行为
我对亚马逊的EC2服务相当陌生,对于我从中得到的奇怪行为感到茫然。
我有一个Docker镜像,在本地运行时运行得非常完美。 我已经将其上传到存储库,并将其定义为在EC2中运行集群/服务/任务定义。
当我试图蜷缩到我正在运行的服务时,我被告知连接被拒绝(因为我假设端口未被正确打开或映射)。
如果我使用ssh进入Amazon EC2并使用-p 1200:1200标志手动启动映像,它将再次运行而不会出现问题,并且可以无错地curl。
除此之外,当我尝试从amazon自动部署的映像中检索日志时,它们是空的。
在EC2上本地或手动运行时,日志存在且正确。 我的入站和出站规则不是我所知道的问题,而且我所知道的端口映射也是正确设置的。
我已经包含了所有描述的行为的屏幕截图,以及我的Dockerfile的副本。
停止亚马逊的运行图像,并用-p 1200:1200手动启动:(在这样做后,我的服务响应curl)
这样做的日志:
运行图像的EC2空日志:
入境规则:
出站规则:
端口映射:
Dockerfile:
FROM thedarbear/facerec EXPOSE 1200 RUN mkdir -p /facerec WORKDIR /facerec COPY . /facerec RUN cd /facerec CMD python3 -u server.py
当地检查:
https://pastebin.com/7Y48ukqa
ec2检查:
https://pastebin.com/EdJRSEpi
任何洞察到为什么发生这将不胜感激!
我看到在列出的docker图像的差异。
ECS正在运行读取<none>
并且您正在手动运行latest
。
所以,更新您的任务定义添加:latest
图像领域的:latest
。 然后更新您的服务以使用该任务定义。
此外,手动删除有问题的图像docker rmi -f 4e1b63e39c66