标签: docker-swarm

Is a traefik config with both docker swarm and consul backend possible?

Are the consul and docker swarm configuration backends compatible?

My requirement is that I need to start N traefik containers as a docker service, where they get their dynamic frontends/backends via docker swarm but I also need all N of the traefik containers to use a shared ACME config (i.e. sourced from consul).

I'd like it so that Frontends/backends info should come from the docker swarm, while the ACME config should come from consul. As far as any other static …

docker consul docker-swarm traefik

8
推荐指数
1
解决办法
1560
查看次数

来自守护程序的错误响应:rpc错误:代码= 2 desc =集群没有领导者

我已经创建了3个节点群簇Virtualbox使用docker-machine。这三个都在运行,我可以使用“ docker-machine ssh”连接每个。存在一个问题,我重新启动物理机,集群似乎无法正常工作,为什么?以下是详细信息。感谢您的指导和建议。

san @ san-System-Product-Name:〜$ docker-machine ls

NAME     ACTIVE   DRIVER       STATE     URL                         
SWARM   DOCKER        ERRORS
first    -        virtualbox   Running   tcp://192.168.99.100:2376           
v17.06.0-ce   
second   -        virtualbox   Running   tcp://192.168.99.101:2376           
v17.06.0-ce   
third    -        virtualbox   Running   tcp://192.168.99.102:2376           
v17.06.0-ce
Run Code Online (Sandbox Code Playgroud)

第一个是领导者,第二个是管理者,第三个是工人。我试图使用“ docker-machine ssh first docker node ls”。

Error response from daemon:

`rpc error: code = 2 desc = The swarm does not have a leader`.

It's possible that too few managers are online. Make sure more than 
half of the managers are …
Run Code Online (Sandbox Code Playgroud)

docker-swarm docker-machine

8
推荐指数
1
解决办法
3620
查看次数

如何在不删除的情况下以群模式停止/启动 docker 容器?

我是 docker swarm 模式的新手。如您所知,可以启动/停止 docker 容器,但我认为不可能在 swarm 中执行此操作。
例如,我已经部署了 swarm 并使用副本(2/2)创建了新任务:

docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                                                                               PORTS
2o3a6z30q9df        contactactivity     replicated          2/2                 myimage/live-springboot-myservice:19ff0be1f0087asd1dasdb52c345151e9985b4a5a2   *:111->1111/tcp
Run Code Online (Sandbox Code Playgroud)

是否可以在不移除一个 swarm 容器的情况下停止它并在将来将其带回来?

PS我只是想澄清删除或重新创建 - 在我的情况下不是选项。

让 Q 清楚:如果你停止容器然后启动 - 这个容器不会成为 swarm 的一部分。我无法相信在 swarm 模式下无法进行简单的重启或启动/停止。

linux docker docker-swarm

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

Docker Swarm在Nginx中获得真正的IP(客户端主机)

我有一个使用nginx和PHP的堆栈在Docker Swarm Cluster上运行.

在我的PHP应用程序中,我需要获取remote_addr($ _SERVER ['REMOTE_ADDR']),其中包含访问我的webapp的客户端主机的真实IP.

但问题是IP通过docker swarm集群通知了nginx.它显示了内部IP,如10.255.0.2,但真正的IP是来自客户端主机的外部IP(如192.168.101.151).

我怎么解决这个问题?

我的docker-compose文件:

version: '3'

services:
  php:
    image: php:5.6
    volumes:
      - /var/www/:/var/www/
      - ./data/log/php:/var/log/php5
    networks:
      - backend
    deploy:
      replicas: 1
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - /var/www/:/var/www/
      - ./data/log/nginx:/var/log/nginx
    networks:
      - backend
networks:
  backend:
Run Code Online (Sandbox Code Playgroud)

我的default.conf(vhost.conf)文件:

server {
    listen          80;
    root            /var/www;
    index           index.html index.htm index.php;

    access_log  /var/log/nginx/access.log  main;
    error_log   /var/log/nginx/error.log error;

    location / {
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;

        try_files   $uri $uri/ /index.php;
    } …
Run Code Online (Sandbox Code Playgroud)

php nginx docker docker-compose docker-swarm

8
推荐指数
2
解决办法
5197
查看次数

从Docker堆栈运行cron作业的最佳实践

事情是这样的:我有一个堆栈,其中节点js后端将消息发送到队列,而perl worker(cron作业)使用该队列中的消息。我已经“ dockerized”了节点js后端,但是现在我正尝试对Perl Workers执行相同的操作。

但是,已经在docker化了Perl应用程序本身,因为队列的“作业”是基于crontab消耗的(即每2分钟),所以我的问题是:

从docker-compose文件构建堆栈时,实现此目标的最佳方法是什么?

让我知道是否需要提供更多详细信息。谢谢!

cron docker docker-compose docker-swarm

8
推荐指数
1
解决办法
7534
查看次数

在HTTPS上运行docker服务

当前,我通过使用以下文件运行一个简单的Docker容器。

Docker文件

FROM microsoft/aspnet:4.7.1
WORKDIR /inetpub/wwwroot
EXPOSE 80
COPY index.html .
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml

version: '3.4'

services:

testapp:
  image: mytestapp:${TAG:-latest}
build:
  context: .
  dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)

docker-compose.override.yml

version: '3.4'

services:
  testapp:
   ports:
    - "9091:80"
Run Code Online (Sandbox Code Playgroud)

我使用Windows映像通过以下命令创建容器,并且可以通过http:// localhost:9091 /访问它。

docker-compose -f docker-compose.yml -f docker-compose.override.yml build
Run Code Online (Sandbox Code Playgroud)

我想使用HTTPS而非http访问我的应用程序。

我需要遵循哪些步骤?

docker docker-compose docker-swarm

8
推荐指数
2
解决办法
9046
查看次数

部署服务时,如何解决Docker错误“ Win32中的hnsCall失败:找不到适配器”?

我正在尝试从主机运行一个四节点群集,我的计算机是管理器,并将三个Hyper-V VM作为工作程序节点。我试图在所有节点hnsCall failed in Win32: An adapter was not found上将静态网页作为服务运行,但是始终在主机和No such image虚拟机上接收错误(尝试从私有注册表中提取服务映像)。在部署堆栈或使用时会发生这种情况service create。但是,我可以通过容器实例运行静态页面,并且可以正常工作。

我按照本指南设置和创建了我的VM,我怀疑这是我的问题所在。我通过HyperV虚拟交换机管理器创建的虚拟交换机(名为thevswitch)既在外部,又在正确的适配器上设置。我初始化用我的主机的IPv4下一个群thevswitch--advertise-addr标志,并成功加入了虚拟机的工作节点到这个IP,同时使用驱动程序。无论如何,Docker似乎都看不到我创建的虚拟交换机。

PS C:\Docker\swarm-test> docker version
Client: Docker Engine - Community
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        6247962
 Built:             Sun Feb 10 04:12:31 2019
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.24)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun …
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm docker-machine docker-networking docker-for-windows

8
推荐指数
1
解决办法
572
查看次数

docker镜像可以选择操作系统吗?

Docker 镜像可以指定它可以使用哪个操作系统吗?比如说一个使用 Windows 的映像,另一个使用 RHEL 的映像?这种情况下Docker将如何维护两个不同的操作系统呢?

docker dockerfile docker-swarm

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

Docker sleep 命令有什么作用?

我找不到关于 Docker sleep 命令的作用的明确解释,有人可以解释一下吗?例如:

docker container run -d alpine sleep 1d
Run Code Online (Sandbox Code Playgroud)

我在网上查了一下,但找不到简单的解释。

docker dockerfile docker-compose docker-swarm docker-machine

8
推荐指数
1
解决办法
4万
查看次数

Docker 动态更改 mtu?

我有 9 个堆栈的生产 docker swarm,其中大多数都有卷。目前docker正在单节点运行。

我必须添加第二个节点,这是问题开始的地方。尤其是 portainer 的问题是——它变得非常滞后,几乎无法使用。此外,当我将一些容器移动到新节点时,我的项目似乎完全陷入困境 - 问题在于不同节点上的容器之间的通信。有些请求是可以的,但大多数请求似乎都被破坏了。

经过一番研究,我发现问题似乎出在 MTU 上。eth1的MTU是1450,docker默认是1500。

问题是,是否可以即时将 docker 的 MTU 更改为 1450?

我试过:

  1. 将密钥添加到 dockerd --mtu=1450 - docker 服务根本没有启动
  2. 在 docker-compose 中更改主网络的 mtu - 似乎它没有更新,我认为应该重新创建网络
  3. 将 mtu 选项添加到 /etc/docker/daemon.json 似乎也没有效果

如何更改工作生产服务器上的 mtu?可能的停机时间为 10-15 分钟是可以的,但我不想删除所有堆栈并重新创建它们。

如果配置

mtu ifconfig docker docker-swarm

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