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新手,在操作过程中发现了许多许多的坑。后续有空再汇总一下