【问题标题】:Docker Swarm accepting containers as workersDocker Swarm 接受容器作为工人
【发布时间】:2022-01-17 04:42:27
【问题描述】:

我有一个运行 5 个 docker 容器的 vm。主 vm 服务器是 swarm 的管理器。我需要将五个容器添加到 swarm 中,以便对其进行管理。注意:痣:对不起,Bub。美国和英国的做法不同。

【问题讨论】:

    标签: docker docker-compose docker-swarm


    【解决方案1】:

    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 
    # 
    

    【讨论】:

    • 我会试一试...
    • 另外说明,您将拥有工作节点和管理节点。您可以仅在管理节点上运行该命令来启动服务(或部署堆栈),它们将酌情管理工作人员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多