为什么Docker中的参数-d和--rm冲突?
$ docker run -d --rm image
Conflicting options: --rm and -d
Run Code Online (Sandbox Code Playgroud)
我有许多运行单元/功能/集成测试的容器.Docker容器启动,运行测试,然后停止.因为我只关心结果,所以我将它们分开运行,但我也希望在容器退出后将容器移除.这样做有什么好办法?
小智 29
目前(Docker v1.1.1),不支持此功能.该--rm功能的开发人员在他的PR#1589中解释了原因:
仅当未提供-d时才支持它.自动删除通过docker run -d创建的容器没有意义.有两个原因可以通过这种方式实现:1)我们可能希望在删除容器之前检索某种退出状态或日志2)在当前体系结构中,在服务器端进行此运行很困难.
好消息是有人已经开了一个问题来解决这个问题,所以你可以在那里讨论.
此外,解决方法不是太复杂,您可以使用包装脚本运行容器,如下所示:
ID=$(docker run -d ubuntu sleep 3)
docker wait $ID
docker rm $ID
Run Code Online (Sandbox Code Playgroud)
jch*_*ysk 14
从Docker 1.13.0版开始,这些选项不再发生冲突
有一个pull请求可以移动--rm选项守护程序端,并允许使用remove选项运行分离的容器:https://github.com/docker/docker/pull/20848
| 归档时间: |
|
| 查看次数: |
10520 次 |
| 最近记录: |