我正在尝试在一个集群中创建一个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
知道我缺少什么吗?
答案 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
显示群集节点名称。