创建新的Docker映像与运行Shell命令

时间:2019-01-25 17:29:51

标签: docker

我们正在使用fabric-ca码头工人形象。它没有安装scp,所以我们有两个选择:

选项1:按照here

所述创建新图像

选项2:启动容器时从外壳安装scp

我们想了解每个优点和缺点。

3 个答案:

答案 0 :(得分:0)

您应该将选择2视为入门者。建立自定义映像或使用主机目录绑定安装(docker run -v /host/path:/container/path选项)来注入所需的数据;我可能更喜欢bind-mount选项。

docker rm是一个非常常规的容器,当您这样做时,您在容器中本地所做的所有更改都会丢失。例如,如果有新的软件版本或重要的安全更新,则必须使用新映像重新创建容器。您几乎永远不要在容器的交互式外壳中安装软件,尤其是如果要使用它来复制应用程序所需的数据时,尤其是:每次删除并重新创建容器时,都必须重复此步骤。

答案 1 :(得分:0)

选项1:允许您进一步构建,创建稳定状态,可以在发布之前验证/测试图像

选项2:启动需要较长时间,需要在容器启动期间处于联机状态,因此很难跟踪/了解和管理锁定在例如启动dockers与Dockerfile的bash脚本以及最终将用于容器编排的任何技术。

最终,我仅将选项2用于发现,概念验证或尝试某些操作。一旦知道需要持续使用某些容器,就可以通过Dockerfile构建适当的映像。

答案 2 :(得分:-1)

选项1:

  • 图像的BUILD较长,但是您只能在第一次执行它
  • RUN更快
  • 您不需要在RUN上连接互联网
  • 包括对不同步骤的验证
  • 允许追踪

选项2:

  • RUN更长
  • 您需要在RUN上连接互联网
  • 更难追踪