我已经将docker映像上传到AWS EC2实例。现在我已经更新了我的代码并修改了它,我已经创建了一个带有新标签的新docker映像,并将其上传到相同的docker映像存储库,并希望将新的docker映像上传到相同的ec2实例。我将AWS连接到ssh客户端,并写入以下行
docker run --restart=always -p 8000:8000 myDockerImageRepositary:myTag
它给了我一个错误
Error response from daemon: driver failed programming external connectivity on endpoint dreamy_engelbart (0be73435f9a848ead131e0e15160ce9cb7333fa84565291d027e6a9d6467c476): Bind for 0.0.0.0:8000 failed: port is already allocated.
我认为错误是因为我以前的docker映像在端口8000上运行,但我必须用新的docker映像更新该docker映像,不知道如何做到这一点。
谢谢
运行sudo netstat -nltpu
以确认在该端口上运行的应用程序。如果它是docker,那么这意味着您可能没有杀死该端口上运行的前一个docker容器。如果没有其他容器在运行,可以使用docker stop $(docker ps -a -q)
停止所有容器如果您有其他容器正在运行,您可以运行docker ps
以获取在该端口上运行的容器的详细信息,然后运行docker stop CONTAINER_ID
以停止该容器。