【发布时间】:2022-01-17 04:42:27
【问题描述】:
我有一个运行 5 个 docker 容器的 vm。主 vm 服务器是 swarm 的管理器。我需要将五个容器添加到 swarm 中,以便对其进行管理。注意:痣:对不起,Bub。美国和英国的做法不同。
【问题讨论】:
标签: docker docker-compose docker-swarm
我有一个运行 5 个 docker 容器的 vm。主 vm 服务器是 swarm 的管理器。我需要将五个容器添加到 swarm 中,以便对其进行管理。注意:痣:对不起,Bub。美国和英国的做法不同。
【问题讨论】:
标签: docker docker-compose docker-swarm
Docker swarm 不直接管理容器。
首先,您创建一个服务或堆栈 - 它是服务的集合。
docker service create --name nginx nginx
服务是隐式复制的,并且会被调度到 swarm 节点上。每个复制实例称为一个任务。您可以获得与服务关联的任务列表:
% docker service ps --no-trunc nginx
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
mnhvyw9bz5nkup42scnkd0bnh nginx.1 nginx:latest@sha256:.... node1 Running Running 16 seconds ago
任务具有期望的状态和当前状态——它们可以是创建、运行、停止等。创建或运行的任务将与节点上的容器相关联,该容器将显示在 ps 列表中,并且容器名称将是任务名称和任务 ID。
% docker inspect mnhvy --format {{.Status.ContainerStatus.ContainerID}}
9cab5bb381b5ee5519f534393a8bd9014e4263c0afd6bb85f81a597728aa3f39
现在,您可以使用容器 id(通过检查任务发现)或容器名称(附加 ps 列表中的名称和 id 以获取 nginx.1.mnhvyw9bz5nkup42scnkd0bnh)访问与服务关联的容器之一
docker -H ssh://node1 exec -it 9cab5 /bin/sh
#
【讨论】: