docker报错Error response from daemon: Container xxx is not running

1. 问题

在移植了docker后,执行了sudo docker run --name myrosort -p 80:80 -d rosort 指令运行名为myrosort的容器,通过sudo docker ps -a也可以看到确实运行了

复制代码
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker run --name myrosort -p 80:80 -d rosort
53e999137030b67c903a5bd5966ad378dd3ee0224434e57de60ebf91124b05bf
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker ps -a
CONTAINER ID   IMAGE         COMMAND     CREATED          STATUS                      PORTS     NAMES
53e999137030   rosort        "/bin/sh"   16 seconds ago   Exited (0) 14 seconds ago             myrosort
81999b396b56   hello-world   "/hello"    3 hours ago      Exited (0) 3 hours ago                pensive_austin
1077ee673c62   hello-world   "/hello"    3 days ago       Exited (0) 3 days ago                 eager_margulis

但接下来想要进入容器,执行sudo docker start myrosort以及 sudo docker exec -it myrosort bash指令的以后发现报错,容器没有运行,53e999137030b67........这一长串的字符是容器对应的ID。网上搜了几百个方法例如这个,都是提醒要先start 容器,但明明我已经start了

复制代码
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker start myrosort
myrosort
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker exec -it myrosort bash
Error response from daemon: Container 53e999137030b67c903a5bd5966ad378dd3ee0224434e57de60ebf91124b05bf is not running

start了一下ID, 执行sudo docker start 53e999137030 (这里注意要跟sudo docker ps -a查询到的container ID移植),再去以ID的形式进入容器,也失败了。。。。

复制代码
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker start 53e999137030
[sudo] password for neousys: 
53e999137030
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker exec -it myrosort bash
Error response from daemon: Container 53e999137030b67c903a5bd5966ad378dd3ee0224434e57de60ebf91124b05bf is not running

2. 解决方法

在stackoverflow上找到这个方法,看起来就是容器没有一直运行,想要容器一直保持运行,要注意输入指令的格式

首先为了确保运行的容器正确,我先打印一下所有的镜像: sudo docker images,看到我的镜像名称,repository是rosort ,然后根据上图的格式,sudo docker run -t -d --name newport rosort newport是我新命名的,rosort 是image name ,再输入sudo docker start newport就可以一直运行了,接下来也就成功进入了这个容器

复制代码
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
<none>        <none>    f5e992705c48   3 hours ago    6.3GB
pickup        v1        b90b380f7902   5 hours ago    6.3GB
hello-world   latest    9c7a54a9a43c   4 months ago   13.3kB
rosort        latest    ef0e3337697d   6 months ago   6.06GB
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker run -t -d --name newport  rosort
fba2111eeb817a09d90f4d479502ebb8583e3efd4d1c1f3b0ece2860235eb5fe
(base) neousys@neousys-Nuvo-5000:~/wqw/docker/20230915$ sudo docker start newport
newport

3. 总结

出现这个问题的根本原因是容器没有一直run 起来,是我一开始输的指令错了,错误的指令:

复制代码
sudo docker run --name myrosort -p 80:80 -d rosort

正确的指令:

复制代码
sudo docker run -t -d --name newport  rosort

docker新手,在操作过程中发现了许多许多的坑。后续有空再汇总一下

相关推荐
lswzw33 分钟前
K8s容器网络排查实战:从宿主机穿透命名空间定位端口监听问题
开发语言·docker·容器
小张同学a.40 分钟前
OpenStack 私有云实战 2—— Glance 镜像与 Nova 计算服务搭建
linux·运维·服务器·openstack
陈让然2 小时前
VS Code C/C++ 插件 cpptools 内存占用异常
linux·运维
qq_316411038 小时前
商用冷柜售后报修运维管理系统开发案例
运维
智码看视界9 小时前
Day59-阿里云ACK实战:生产级K8s集群部署与运维
运维·阿里云·kubernetes·k8s·日志监控·容器运维·阿里云ack
码视野10 小时前
基于 Vue3 + Element Plus 的【智慧新能源汽车充电桩运维调度与分时共享租赁系统】设计与实现(附完整源码与PRD)
运维·人工智能·汽车·vue3
qq_4260039610 小时前
【UI自动化测试】UI自动化报错解决方案
运维·ui·自动化
网安蟹佬霸11 小时前
WAF绕过技术实战:从规则检测到编码绕过全指南(2026最新版,附Payload集与自动化脚本)
运维·安全·网络安全·架构·自动化·网安
小杨不想秃头11 小时前
信息安全工程师教程第二章密码学
运维·服务器·密码学
I'mChloe11 小时前
WGCLOUD怎么监控多台服务器?从Server、Agent 部署到监控面板实战
运维·服务器