docker pull in unit files仅在第一次启动时起作用,稍后会被忽略

管理层收购

我有一个单元,运行docker映像的“最新”标签。第一次启动时,通过“ docker pull”命令从单元文件中获取最新映像。

但是在任何后续的(重新)启动中,似乎都不会执行“ docker pull”命令,因为任何带有“ latest”标记的新映像修订都不会被提取。

在命令行上运行“ docker pull ...”可以按预期工作。

我的服务档案:

[Unit]
Description=Foo
Requires=docker.service
After=docker.service

[Service]
TimeoutStartSec=0
KillMode=none
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill foo
ExecStartPre=-/usr/bin/docker rm foo
ExecStartPre=/usr/bin/docker login -e [email protected] -u bla -p xxxxx https://myregistry.example.com && /usr/bin/docker pull myregistry.example.com/foo
ExecStart=/usr/bin/docker run --name foo myregistry.example.com/foo
ExecStop=/usr/bin/docker stop foo

[X-Fleet]
Global=true

这是故意行为吗?是否可以解决此问题?

提前致谢!

编辑:运行CoreOS 557.2.0,泊坞窗1.4.1和短暂的0.9.0

保罗·迪克森

选项1-使用多个ExecStartPre

我不确定您是否可以&&ExecStartPre部分中使用外壳样式

因此,一种简单的方法就是将其分解

ExecStartPre=/usr/bin/docker login -e [email protected] -u bla -p xxxxx https://myregistry.example.com 
ExecStartPre=/usr/bin/docker pull myregistry.example.com/foo

选项2-通过cloud-config安装.dockercfg凭据

如果您不想在单位文件中嵌入凭证,则可以让CoreOS cloud-config用这样的部分写入凭证

write_files:
  - path: /home/core/.dockercfg
    owner: core:core
    permissions: 0644
    content: |
      {"https://myregistry.example.com:5000":{"auth":"Y2FudGJlbGlldmU6eW91ZGVjb2RlZHRoaXM=","email":"[email protected]"}}

auth值是base64 username:password组合,您可以创建或仅获取有效的.dockercfg文件。

因此,现在您的CoreOS计算机将使用所需的凭据启动,您还需要做另一件事-确保需要登录到注册表的单元以核心用户身份运行:

[Service]
User=core
ExecStartPre=/usr/bin/docker pull myregistry.example.com/foo

选项3-使用实际的外壳

如果您想做类似Shell的事情,您总是可以启动Shell并让它执行所需的操作

ExecStartPre=/bin/sh -c '/usr/bin/docker login -e [email protected] -u bla -p xxxxx https://myregistry.example.com && /usr/bin/docker pull myregistry.example.com/foo'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“ docker pull ubuntu”不起作用

来自分类Dev

“ docker pull”命令的协议

来自分类Dev

如何停止docker pull

来自分类Dev

docker push / pull是原子的吗?

来自分类Dev

Docker pull hello-world显示创建成功,但是在使用docker ps或docker ps时-a不推送图像

来自分类Dev

在进行docker pull时,有什么方法可以避免“大师冥想”?

来自分类Dev

第一次 git checkout 后需要 git pull

来自分类Dev

如何逐层调试docker pull?

来自分类Dev

Windows 8.1上的docker pull centos超时

来自分类Dev

Docker pull 可以认证但运行不能

来自分类Dev

从Dockerfile进行docker pull和docker build的利弊是什么?

来自分类Dev

尽管有docker pull仍无法在本地找到docker镜像

来自分类Dev

docker run 和 docker pull 有什么区别

来自分类Dev

当使用 AWS 日志驱动程序配置运行 docker 容器时,Systemd Unit 抛出错误

来自分类Dev

Error starting docker service: Unit not found

来自分类Dev

使用Gitlab Runner部署到Digital Ocean时,“ docker pull”要求恰好1个参数错误

来自分类Dev

为什么这仅在第一次显示对话框时起作用?

来自分类Dev

angularjs观看单选按钮以使更改仅在第一次选择时起作用

来自分类Dev

Javascript-动画仅在第一次按下按钮时起作用

来自分类Dev

锚链接偏移仅在第一次单击时不起作用

来自分类Dev

Docker Pull错误:设备上没有剩余空间

来自分类Dev

docker pull image错误:存储库不存在

来自分类Dev

Docker Pull在Windows Container模式下的Windows 10上失败

来自分类Dev

我如何知道 docker pull 何时更新图像?

来自分类Dev

ec2 实例中 docker pull 的问题

来自分类Dev

Docker Pull无法在127.0.1.1:53上查找index.docker.io(无法解组DNS消息)

来自分类Dev

如何在docker push和docker pull中管理并发性?

来自分类Dev

如何在不使用docker pull的情况下检测是否有新的docker映像?

来自分类Dev

Git Pull似乎不起作用

Related 相关文章

  1. 1

    “ docker pull ubuntu”不起作用

  2. 2

    “ docker pull”命令的协议

  3. 3

    如何停止docker pull

  4. 4

    docker push / pull是原子的吗?

  5. 5

    Docker pull hello-world显示创建成功,但是在使用docker ps或docker ps时-a不推送图像

  6. 6

    在进行docker pull时,有什么方法可以避免“大师冥想”?

  7. 7

    第一次 git checkout 后需要 git pull

  8. 8

    如何逐层调试docker pull?

  9. 9

    Windows 8.1上的docker pull centos超时

  10. 10

    Docker pull 可以认证但运行不能

  11. 11

    从Dockerfile进行docker pull和docker build的利弊是什么?

  12. 12

    尽管有docker pull仍无法在本地找到docker镜像

  13. 13

    docker run 和 docker pull 有什么区别

  14. 14

    当使用 AWS 日志驱动程序配置运行 docker 容器时,Systemd Unit 抛出错误

  15. 15

    Error starting docker service: Unit not found

  16. 16

    使用Gitlab Runner部署到Digital Ocean时,“ docker pull”要求恰好1个参数错误

  17. 17

    为什么这仅在第一次显示对话框时起作用?

  18. 18

    angularjs观看单选按钮以使更改仅在第一次选择时起作用

  19. 19

    Javascript-动画仅在第一次按下按钮时起作用

  20. 20

    锚链接偏移仅在第一次单击时不起作用

  21. 21

    Docker Pull错误:设备上没有剩余空间

  22. 22

    docker pull image错误:存储库不存在

  23. 23

    Docker Pull在Windows Container模式下的Windows 10上失败

  24. 24

    我如何知道 docker pull 何时更新图像?

  25. 25

    ec2 实例中 docker pull 的问题

  26. 26

    Docker Pull无法在127.0.1.1:53上查找index.docker.io(无法解组DNS消息)

  27. 27

    如何在docker push和docker pull中管理并发性?

  28. 28

    如何在不使用docker pull的情况下检测是否有新的docker映像?

  29. 29

    Git Pull似乎不起作用

热门标签

归档