在 docker swarm 中将一次性任务作为服务运行

时间:2021-03-12 12:12:44

标签: docker docker-swarm docker-swarm-mode

我们想使用一次性 global-job mode 在 docker 服务中运行任务。

docker service create --name ping-google-global --mode=global-job bash ping -c 5 google.com

这有效,但有两个缺点:

  1. 当我们想再次运行它时(通过相同的命令),我们得到一个错误:
Error response from daemon: rpc error: code = AlreadyExists desc = name conflicts with an 
existing object: service ping-google-global already exists
  1. 我们无法立即看到命令的输出,因为它只能通过 docer 服务日志获得

我的问题:

  1. 我们如何多次运行该服务?我们是否必须通过 docker service rm ping-google-global 删除它,还是有一种规范的方法可以使这些 mode=global-job 多次“可执行”?
  2. 一般来说:我们如何使执行的命令的输出立即可用(到标准输出而不是内部容器日志)。

1 个答案:

答案 0 :(得分:1)

  1. 您可以删除旧服务或更新它。如果你想确保它会再次运行,即使它的配置没有改变,那么你需要用 --force 更新它。

  2. 在子 shell 中使用 docker service logs ping-google-global

相关问题