标签: docker-swarm

将 docker-swarm 与 dokku 一起使用

这里的 swarm 文档https://docs.docker.com/swarm/告诉我们

由于 Docker Swarm 提供标准 Docker API,因此任何已与 Docker 守护进程通信的工具都可以使用 Swarm 透明地扩展到多个主机。支持的工具包括但不限于以下内容:

Dokku Docker Compose Krane Jenkins

那么如何使用 Dokku 和 docker-swarm 来支持多主机呢?

docker dokku docker-swarm

3
推荐指数
1
解决办法
1918
查看次数

Docker 集群负载均衡

我们需要通过 Ngnix 和 Swarm 模式来平衡负载吗?

如果是这样,我们为什么需要这样做。Docker swarm 平衡负载。我测试了简单的应用程序。它有多种负载平衡策略。

连docker swarm都可以均衡负载,为什么还有那么多关于swarm模式下用ngnix进行负载均衡的文章呢?

docker docker-swarm

3
推荐指数
1
解决办法
896
查看次数

如何为所有新的 docker 网络设置基本 IP 地址

当我创建一个新网络时,docker 使用 172.255.255.255(172.17.1.0、172.18.1.0 等)等地址创建它。但这可能与外部地址冲突,因为我网络中的所有计算机都具有相同的前缀(172.255.255.255)

有没有办法配置 docker 在创建新网络时使用的基本子网地址?

[更新] 我正在自动创建和删除网络,因此,我无法设置 --subnet 选项(因为我不知道哪些地址正在使用或未使用)。我需要 Docker 动态管理地址池,就像它管理入口网络(自动分配和修剪子网)一样。其实我需要的只是自定义入口基地址!

docker docker-swarm

3
推荐指数
1
解决办法
2079
查看次数

由于任务失败或提前终止,更新暂停。OCI 运行时创建失败:container_linux.go:2… [DOCKER]

我尝试更新我的服务

\n\n

sudo docker service update result --network-add backend --publish-add 5001\n\n并得到错误说明

\n\n
result\noverall progress: 0 out of 1 tasks \n1/1: starting container failed: OCI runtime create failed: container_linux.go:2\xe2\x80\xa6 \nservice update paused: update paused due to failure or early termination of task gyovus3crd23v3wb22m1lbxf5\n
Run Code Online (Sandbox Code Playgroud)\n\n

result但是,我在创建服务时停止了该进程,因为它花了很长时间。现在有什么办法可以完成创建过程吗?

\n

docker docker-swarm

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

Docker swarm 获取部署状态

在运行docker stack deploy将一些服务部署到 swarm 后,是否有一种方法可以以编程方式测试所有容器是否正确启动?

目的是在临时 CI/CD 管道中验证容器是否确实正在运行并且在启动时没有失败。通过 禁用重新启动restart_policy

我在看docker stack services,该replicas专栏对此有用吗?

$ docker stack services --format "{{.ID}} {{.Replicas}}" my-stack-name
lxoksqmag0qb 0/1
ovqqnya8ato4 0/1
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm

3
推荐指数
1
解决办法
2236
查看次数

Docker Swarm 中任务的可发现性

我正在运行一个小型 Docker Swarm,运行一个有 2 个副本的服务。在该服务中,该服务的“task-1”需要与同一服务的“task-2”通信,但我没有找到实现此目的的方法

首先,我想避免将服务设置为主机网络模式,因为这样将其放入集群中就没有什么意义了。

其次,我发现您可以设置一个环境变量,其中包含docker-compose.yml我部署到 swarm 的文件中的 TaskName docker stack deply ...

    environment:
        - NODENAME={{.Node.Hostname}}
        - NODEID={{.Node.ID}}
        - SERVICEID={{.Service.ID}}  
        - SERVICENAME={{.Service.Name}}  
        - TASKID={{.Task.ID}}
        - TASKNAME={{.Task.Name}}
Run Code Online (Sandbox Code Playgroud)

您可以从各种容器 ping $TASKNAME。但它是不可发现的,因为名称中TASKNAME=e2foobar_yada.gq7ygzvp114q2x3t99lasuowc.e6ncft2k14g9o2u4blvhns19包含的 ID 在您重新启动服务时会发生更改。

我可以设置别名吗?或者有什么方法可以让我进行任务通信吗?

service-discovery docker docker-swarm

3
推荐指数
1
解决办法
4202
查看次数

我如何在 docker 构建过程中传递参数或绕过它?

我为我的 PHP 应用程序编写了一个 Dockerfile,而不是从 dockerhub 我从头开始创建它。

例如:

 FROM ubuntu:18.04
 RUN apt-get update && \
       apt-get install -y --no-install-recommends apt-utils && \
       apt-get -y install sudo

 RUN sudo apt-get install apache2 -y
 RUN sudo apt-get install mysql-server -y
 RUN sudo apt-get install php libapache2-mod-php -y 
 RUN rm -rf /var/www/html/
 COPY . /var/www/html/
 WORKDIR /var/www/html/
 EXPOSE 80
 RUN chmod -R 777 /var/www/html/app/tmp/

 CMD systemctl restart apache2
Run Code Online (Sandbox Code Playgroud)

在这一步:

 RUN sudo apt-get install php libapache2-mod-php -y
Run Code Online (Sandbox Code Playgroud)

我被卡住了,因为它要求用户输入,比如:

请选择您居住的地理区域。随后的配置问题将通过显示城市列表来缩小范围,代表它们所在的时区。

  1. 非洲 4. 澳大利亚 7. 大西洋 10. …

docker dockerfile docker-compose docker-swarm docker-machine

3
推荐指数
1
解决办法
2695
查看次数

在创建 docker 服务时检测到某些图像的任务失败

我正在尝试创建 docker swarm 服务,但出现了一些奇怪的行为:

对于某些图像,它是成功的,对于某些图像,我收到错误消息:

docker service create nginx 89t21k3udf007pvl2ucvmdp9l overall progress: 1 out of 1 tasks 1/1: running [==================================================>] verify: Service converged --> 成功

docker service create hello-world 8hhdki32ypfwshh2wvijkkmvb overall progress: 0 out of 1 tasks 1/1: preparing [=================================> ] verify: Detected task failure --> 失败

供您参考:docker pull hello-world工作正常。

我的印象是我们可以为所有图像创建服务,是否有任何条款和条件?我错过了什么吗?

注意:这是基本部分,但我的主要目的是为本地注册表镜像创建服务。但是在调试的第一步中发现了问题,即hello-world。

docker docker-swarm docker-swarm-mode

3
推荐指数
1
解决办法
6078
查看次数

无需停机即可更新服务中的映像

我正在 Docker Swarm 上运行服务。这是我为部署服务所做的:

docker swarm init
docker stack deploy -c docker-compose.yml MyApplication
Run Code Online (Sandbox Code Playgroud)

docker-compose.yml 的内容

version: "3"
services:
    web:
        image: myimage:1.0
        ports:
            - "9000:80"
            - "9001:443"
        deploy:
            replicas: 3
            resources:
                limits:
                    cpus: "0.5"
                    memory: 256M
                restart_policy:
                    condition: on-failure
Run Code Online (Sandbox Code Playgroud)

假设我更新了应用程序并构建了一个新图像myimage:2.0。在不停机的情况下将新版本的映像部署到服务的正确方法是什么?

docker docker-compose docker-swarm

3
推荐指数
2
解决办法
1639
查看次数

连接未关闭(HikariCP、Postgres)

环境

春季启动 2.1.2。

2 个环境:local(postgres 11)和qa(docker swarm with postgres 10 和应用程序)

问题

maxLifetime传球,阿光重新创建连接(关闭旧的,创造新的),但对qa环境的连接没有得到关闭:与检查select * from pg_stat_activity wheredataname=... ,并在日志中,我们有:

2019-09-25 12:00:20.694 DEBUG 6 --- [nnection closer] c.z.h.p.PoolBase                         : HikariPool-1 - Closing connection org.postgresql.jdbc.PgConnection@54d41592: (connection has passed maxLifetime)
2019-09-25 12:00:20.699 DEBUG 6 --- [onnection adder] c.z.h.p.HikariPool                       : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@29e14ddb
2019-09-25 12:00:26.372 DEBUG 6 --- [nnection closer] c.z.h.p.PoolBase                         : HikariPool-1 - Closing connection org.postgresql.jdbc.PgConnection@11684c62: (connection has passed maxLifetime)
2019-09-25 12:00:26.376 DEBUG …
Run Code Online (Sandbox Code Playgroud)

postgresql spring-boot hikaricp docker-swarm

3
推荐指数
1
解决办法
8487
查看次数