标签: docker-swarm

docker swarm模式多个服务相同的端口

假设拓扑上有两个服务

  1. API
  2. Web界面

两者都假设在端口80上运行.

在创建服务时,如果要在群集外部访问它,则需要在docker swarm上公开并将端口从服务映射到节点(外部端口).但是,如果您将端口80映射为让我们说API服务,那么您无法映射Web Interface服务的相同端口,因为它已经映射.

怎么解决这个问题?

据我所知,这个用例不受支持.即使你想拥有一个大群集群,并且因为这种行为也无法实现所有服务和应用程序.

我错过了什么?

任何模式来解决这个问题?

docker docker-swarm devops

17
推荐指数
3
解决办法
8705
查看次数

HEALTHCHECK:Dockerfile与docker-compose.yml

我们正在使用Docker Compose文件和Docker Swarm部署我们的服务.我想知道将健康检查放在Dockerfile中是否有任何区别,或者将它放在docker-compose.yml中是否更好.

我觉得我已经阅读了所有可用的文档,但找不到任何内容.

泊坞窗,compose.yml

healthcheck:
    test: ["CMD", "curl", "-f", "http://localhost:8081/ping"]
    interval: 30s
    timeout: 10s
Run Code Online (Sandbox Code Playgroud)

Dockerfile

HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost:8081/ping
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose docker-swarm

17
推荐指数
1
解决办法
2278
查看次数

当对码头群网络运行一次性命令时,"网络无法手动连接"

我正在尝试运行一次性命令来初始化一个新的docker swarm中的数据库模式,该数据库模式部署了1.13对docker-compose文件的新支持.

该群有以下网络:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
...
b7dptlu8zyqa        vme_internal         overlay             swarm
...
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml文件中定义为:

networks:
    internal:
Run Code Online (Sandbox Code Playgroud)

我运行的命令是

docker run --rm --network vme_internal app:0.1 db upgrade
Run Code Online (Sandbox Code Playgroud)

使用额外vme_前缀来自我在部署时给堆栈的名称.现在当我运行上面的命令时,我得到:

docker: Error response from daemon: Could not attach to network vme_internal:
rpc error: code = 7 desc = network vme_internal not manually attachable.
Run Code Online (Sandbox Code Playgroud)

如何使网络可连接?

我在Docker网络中找不到任何关于可连接的具体信息,并尝试attachable在网络定义中添加属性而没有成功.

docker docker-compose docker-swarm

16
推荐指数
2
解决办法
1万
查看次数

如何使用标签列出docker swarm节点

如何轻松打印所有可用的docker swarm节点及其标签?

添加标签到节点
$ docker node update --label-add type=one my_node_name
和默认列表节点docker node ls没有显示过滤器.

另外我可以列出标签检查每个节点,如:

$ docker inspect my_node_name | grep type 
"type": "one"
Run Code Online (Sandbox Code Playgroud)

- -编辑 -

类似的问题如何按标签过滤docker swarm节点?是关于过滤我的是关于列表

label docker docker-swarm

16
推荐指数
1
解决办法
8570
查看次数

在Docker中,"来自守护程序的错误响应:无法选择要广告的IP地址,因为此系统在不同的接口上有多个地址"

我的问题类似于docker swarm init无法选择IP地址错误,但我发现接受的答案有些模糊,所以我再问一遍.在尝试

docker swarm init
Run Code Online (Sandbox Code Playgroud)

我正在发送错误消息

来自守护程序的错误响应:无法选择要广告的IP地址,因为此系统在不同的接口上有多个地址(enp1s0上为192.168.130.117,wlp2s上为192.168.130.89) - 使用--advertise-addr指定一个地址

这可能是什么原因?我目前正在运行VPN(OneClickVPN); 那是问题吗?

另外,为了指定一个地址--advertise-addr,我想了解更多有关消息中给出的地址的信息.我怎么能这样做?

ip docker docker-swarm

16
推荐指数
2
解决办法
8040
查看次数

docker-swarm和docker-组成如何动态添加节点并让它们由服务解析

我一直在玩,docker-compose并从码头中心网站拼凑了一个项目.

我想到的一件事就是我如何扩展个别服务(通过添加更多实例)并让现有实例以某种方式了解这些新实例.

例如,规范docker-compose示例包括以下群集:

  • redis节点
  • python(flask)节点
  • haproxy负载均衡器

我创建了集群,一切正常,但我尝试将另一个节点添加到集群:

$ docker-compose scale web=2
Creating and starting 2 ... done


$ docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                          NAMES
e83f6ed94546        packetops/web:latest   "/bin/sh -c 'python /"   6 minutes ago       Up About a minute   80/tcp                                         swarm-slave/1_web_2
40e01a615a2f        tutum/haproxy          "python /haproxy/main"   7 minutes ago       Up About a minute   443/tcp, 1936/tcp, 172.16.186.165:80->80/tcp   swarm-slave/1_lb_1
f16357a28ac4        packetops/web:latest   "/bin/sh -c 'python /"   7 minutes ago       Up About a minute   80/tcp                                         swarm-slave/1_lb_1/1_web_1,swarm-slave/1_lb_1/web,swarm-slave/1_lb_1/web_1,swarm-slave/1_web_1
8dd59686e7be        redis                  "/entrypoint.sh …
Run Code Online (Sandbox Code Playgroud)

docker etcd docker-compose docker-swarm

15
推荐指数
1
解决办法
1331
查看次数

如何删除群集中的卷?

我有一个包含一个管理器和另一个普通节点的swarm集群,当我创建一个swarm服务时,我正在创建mount类型,mount source和mount target.它在manger和node中创建具有相同名称的卷,并启动容器,我的服务已启动.

当我发布服务时,与服务一起创建的卷未被删除,这仍然很好.

我面临的问题是,当我删除具有相同端点的卷时,它只删除了swarm管理器中的卷,在创建服务时在节点中创建的卷仍然存在.

我希望管理器删除与swarm服务一起创建的所有卷.有办法吗?

docker docker-swarm docker-volume

15
推荐指数
1
解决办法
2613
查看次数

什么是覆盖网络以及DNS解析如何工作?

我无法mongodbdocker swarm群集连接到外部服务器.

据我了解这是因为集群使用覆盖网络驱动程序.我对吗?

如果没有,docker overlay驱动程序如何工作以及如何mongodb从群集连接到外部服务器?

networking docker docker-swarm docker-swarm-mode

15
推荐指数
1
解决办法
6607
查看次数

docker stack deploy导致"没有这样的图像错误"

我正在使用docker swarm并希望部署一个服务docker-compose.我的服务使用一个自定义映像,称为myuser/myrepo:mytag我成功部署到Docker-Hub到私有存储库.

我的docker-compose看起来像这样:

version: "3.3"

services:

  myservice:
    image: myuser/myrepo:mytag
    ports:
      - "8080:8080"
Run Code Online (Sandbox Code Playgroud)

在执行之前,我成功地将图像拉出: docker pull myuser/myrepo:mytag

当我跑步时,docker stack deploy -c docker-compose.yml myapp我总是收到错误:"No such image: myuser/myrepo:mytag".

有趣的是,仅运行相同的文件:( docker-compose up即没有swarm模式)一切正常,服务启动.

我真的不明白为什么会失败?我已经尝试过清理docker system prunedocker然后重新生成我的图像,但没有成功.

docker docker-compose docker-swarm docker-stack

15
推荐指数
2
解决办法
8246
查看次数

本地开发微服务、方法和工具以有效工作

我与团队成员一起开发微服务架构,但我的工作方式有问题。事实上,我有太多的微服务,当我在开发过程中运行它们时,即使有一个好的工作站,它也会消耗太多内存。所以我使用 docker compose 来构建和执行我的 MSA,但这需要很长时间。人们经常听说如何在技术上构建 MSA,但从未听说过如何有效地构建它。在这种情况下你怎么办?你如何工作的 ?您是否使用工具或任何其他工具来改进和促进您的开发。我听说过 skaffold,但我看不出与 docker compose 或集群环境中的简单 ci/cd 有什么区别。随时提供提示和您的意见。谢谢

development-environment microservices docker-compose docker-swarm skaffold

15
推荐指数
1
解决办法
3792
查看次数