当我调试我的Dockerfile时,你经常需要运行这两个命令:
$ docker build -t myuser/myapp:mytag - < myapp.docker # to create the container
$ docker run -i -t myuser/myapp:mytag /bin/bash # to enter the container and see what's going on when something went wrong
Run Code Online (Sandbox Code Playgroud)
("mytag"通常类似于"生产","测试"或"开发".不确定我是否应该以这种方式使用标签)
但现在第二个命令似乎不再起作用了:它正在启动一个旧容器.如果我列出所有容器$ docker images,我会在第三个位置看到我标记的容器,并在其前面看到其他未标记的容器.如果我使用第一个容器的ID它工作正常,但这样做会很烦人,我每次都要搜索它的ID.
我究竟做错了什么?
明确容器与镜像非常重要。听起来你的标记图像是图像列表中的第三个,并且你认为第一个只有 n ID 的图像确实应该被标记,但事实并非如此。这可能意味着构建图像时出现问题。默认情况下输出很详细,docker build应该会告诉您问题所在。
顺便说一句,我并不完全确定您的用例,但使用不同的容器进行开发、测试和生产的想法是一种反模式。重点是尽量减少执行环境之间的差异。在大多数情况下,您应该使用相同的映像,但提供不同的环境变量来根据每个环境的需要配置应用程序。但同样,我确信这样做是有原因的,而且你可能有一个合法的理由。
| 归档时间: |
|
| 查看次数: |
7764 次 |
| 最近记录: |