docker 每执行一条命令就会新建一个 container?

2019-03-15 21:52:22 +08:00
 51300520

初学者,有点不明白,下了个 ubuntu 镜像,我就执行了 2 条 docker run ubuntu ls docker run ubuntu cd ~/

结果用 docker ps -a 一看,就多了两个 container,那这样下去我用 docker 多执行几个命令岂不是就会生成大量容器?我是不是用法有误?

2228 次点击
所在节点    问与答
11 条回复
gstqc
2019-03-15 22:00:12 +08:00
建议你换一本教材
docker 不是用来跑 shell 命令的
Tink
2019-03-15 22:05:22 +08:00
是的,你用法有误
acrisliu
2019-03-15 22:08:19 +08:00
可以加--rm 参数,执行完自动销毁容器。
hoyixi
2019-03-15 22:09:13 +08:00
与其看网上抄来抄去的教程,不如看文档。

-------------------------------------------------------------
Extended description

The docker run command first creates a writeable container layer over the specified image, and then starts it using the specified command. That is, docker run is equivalent to the API /containers/create then /containers/(id)/start

-------------------------------------------------------------

文档明确说了:docker run 相当于先 create, 再 start。 没错,每次都创建( create )再启动( start )
eslizn
2019-03-15 22:10:46 +08:00
你的本意是希望 docker exec ubuntu ls 吧?
mmm159357456
2019-03-15 22:16:25 +08:00
如果你要执行 shell,还是进容器里面在操作吧
archersgz
2019-03-15 22:22:37 +08:00
docker exec -it container_id 前四位 bash
试试
archersgz
2019-03-15 22:39:24 +08:00
再去看下 Dockerfile 的章节,应该会有答案。
zhoulouzi
2019-03-15 22:48:21 +08:00
你用法有误,docker run 基本上就刚开始用,后期不管几个 container 我都会写 compose
ys0290
2019-03-15 22:55:02 +08:00
你可能是要 docker exec -it 容器进程
digimoon
2019-03-15 22:58:49 +08:00
我建容器的时候忘记绑 volume 了,然后不知道怎么修改只能整个删掉再建

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/545132

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX