gpt4 book ai didi

docker-swarm - 在 docker swarm 服务中执行命令

转载 作者:行者123 更新时间:2023-12-03 07:45:13 27 4
gpt4 key购买 nike

  1. 初始化集群模式:

    root@ip-172-31-44-207:/home/ubuntu# docker swarm init --advertise-addr 172.31.44.207

    Swarm initialized: current node (4mj61oxcc8ulbwd7zedxnz6ce) is now a manager.

    To add a worker to this swarm, run the following command:
  2. 加入第二个节点:

    docker swarm join \
    --token SWMTKN-1-4xvddif3wf8tpzcg23tem3zlncth8460srbm7qtyx5qk3ton55-6g05kuek1jhs170d8fub83vs5 \
    172.31.44.207:2377

要向此 swarm 添加管理器,请运行“docker swarm join-token manager”并按照说明进行操作。

# start 2 services
docker service create continuumio/miniconda3

docker service create --name redis redis:3.0.6


root@ip-172-31-44-207:/home/ubuntu# docker service ls
ID NAME REPLICAS IMAGE COMMAND
2yc1xjmita67 miniconda3 0/1 continuumio/miniconda3
c3ptcf2q9zv2 redis 1/1 redis:3.0.6

如上所示,redis 有其副本,而 miniconda 没有似乎复制

我通常会登录 miniconda 容器来键入这些命令:

/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser

问题是 docker exec -it XXX bash 命令不适用于 Swarm 模式。

最佳答案

您可以通过过滤容器名称来执行命令,而无需传递整个 swarm 容器哈希,只需通过服务名称即可。像这样:

docker exec $(docker ps -q -f name=servicename) ls

关于docker-swarm - 在 docker swarm 服务中执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362363/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com