创建Docker服务也不会创建Docker容器

时间:2020-02-10 18:23:48

标签: docker docker-swarm

我正在尝试在一个集群中创建一个docker容器。我希望在执行“ docker service ls”时看到该服务,并在执行“ docker ps”时看到一个容器在运行。我看到了服务,但没有看到容器。

[root@docker01-staging dcater]# docker service create --name dbcservice alpine ping 127.0.0.1
lm2b7g3kbnbn11m33y15bplqf
overall progress: 1 out of 1 tasks
1/1: running   [==================================================>]
verify: Service converged


[root@docker01-staging dcater]# docker service ls
ID                  NAME                             MODE                REPLICAS            IMAGE                                                                                       PORTS
maad961bcum4        dbcservice                       replicated          1/1                 alpine:latest

[root@docker01-staging dcater]# docker ps --filter name=dbcservice
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

知道我缺少什么吗?

2 个答案:

答案 0 :(得分:0)

我大致地找到了答案。我不确定我是否拥有正确的术语,但是docker01-staging是管理节点。我检查了docker02-staging,它实际上是进程运行的地方:

[root@docker02-staging dcater]# docker ps --filter name=dbcservice
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
3f30b6fa3d40        alpine:latest       "ping 127.0.0.1"    56 minutes ago      Up 56 minutes                           dbcservice.1.fke9ljd8brpwzhklzqy0agt1r

答案 1 :(得分:0)

docker ps是一个docker级别的命令,它与运行docker ps的同一节点上运行的docker守护进程进行对话,而在Docker Swarm的上下文中,docker service是一个swarm级别命令,查询群状态。因此,docker ps必须始终在群集中的每个节点上执行才能查看正在运行的容器。

还有docker node ps,这是一个群集级别命令,它将使用群集节点名称显示在群集节点上运行的容器。使用docker node ls显示群集节点名称。