标签: docker-swarm

docker create service与docker deploy stack

新的Docker 1.13.0版本推出docker stack deploy.

docker stack deploy增加了docker-compose.yml直接从文件部署服务的支持.

命令docker service createdocker deploy stack创建相同的服务,只是我两种不同的方式?

是否有任何特殊功能通过创建它添加服务docker deploy stack

我有点困惑,无法找到有关此主题的任何信息.

提前致谢

docker docker-swarm

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

群负载均衡是否应该对其节点执行健康检查?

swarm 文档中的负载平衡部分没有明确说明内部负载平衡器是否也进行健康检查,以及它是否删除了不再运行服务的节点(因为它被杀死或节点被重新启动)。

在以下情况下,我有一个服务,副本为 3,在 3 个节点中的每个节点上运行 1 个实例。

经理:

[root@centosvm ~]# docker ps
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS               NAMES
a593d485050a        ddewaele/springboot.crud.sample:latest   "sh -c 'java $JAVA_OP"   7 minutes ago       Up 7 minutes                            springbootcrudsample.1.5syc6j4c8i3bnerdqq4e1yelm
Run Code Online (Sandbox Code Playgroud)

节点 1:

[root@node1 ~]# docker ps
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS               NAMES
d3b3fbc0f2c5        ddewaele/springboot.crud.sample:latest   "sh -c 'java $JAVA_OP"   4 minutes ago       Up 4 minutes                            springbootcrudsample.3.7y1oyjyrifgkmxlr20oai5ppl
Run Code Online (Sandbox Code Playgroud)

节点 2:

[root@node2 ~]# docker ps
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS              PORTS               NAMES
ebca8f24ec3a        ddewaele/springboot.crud.sample:latest   "sh …
Run Code Online (Sandbox Code Playgroud)

load-balancing docker docker-swarm

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

desc = name 必须作为 dns 名称组件有效

我正在尝试将 minio 部署到我的 docker 集群,并且我的 docker-compose 脚本基于在 minio.io 上找到的自动生成的脚本

问题是,当我尝试将它部署到我的集群时出现错误desc = name must be valid as a dns name component,在搜索网络 abit 后,这似乎主要与包含.. 但是我的没有,所以我想知道是什么导致了这个错误,因为我没有看到任何不是有效 dns URL 的东西(我很可能是错的)

码头工人撰写文件:

version: '3'

services:
 minio1:
  image: minio/minio
  volumes:
   - minio-data1:/export
  ports:
   - "9001:9000"
  networks:
   - minio_distributed
  environment:
   MINIO_ACCESS_KEY: <ACCESS>
   MINIO_SECRET_KEY: <SECRET>
  deploy:
   restart_policy:
    delay: 10s
    max_attempts: 10
    window: 60s
  command: server http://minio1/export http://minio2/export http://minio3/export http://minio4/export 

 minio2:
  image: minio/minio
  volumes:
   - minio-data2:/export
  ports:
   - "9002:9000"
  networks:
   - minio_distributed
  environment:
   MINIO_ACCESS_KEY: <ACCESS> …
Run Code Online (Sandbox Code Playgroud)

dns docker docker-compose docker-swarm

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

Docker Swarm 部署本地 Dockerfile

我正在尝试在本地机器上的 swarm 中部署一组服务以进行测试,并且我想在我从管理器节点运行或部署堆栈时构建 docker 映像。

是否有可能实现我正在努力实现的目标..

docker dockerfile docker-compose docker-swarm

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

Manager Leader 和 Manager 有什么区别

Docker网站上,它正在编写:

MANAGER STATUS列显示节点参与 Raft 共识:

  • 没有值表示不参与群管理的工作节点。
  • Leader 意味着该节点是主管理器节点,它为集群做出所有集群管理和编排决策。
  • Reachable表示该节点是参与 Raft 共识仲裁的管理节点。如果领导节点变得不可用,则该节点有资格被选举为新领导。
  • Unavailable意味着该节点是一个无法与其他管理器通信的管理器。如果管理器节点不可用,您应该将新的管理器节点加入群或将工作节点提升为管理器。

因此,经理负责人做出所有群管理和编排决策
但这些决定是什么?

我可以从任何经理那里创建新服务,我不需要从经理领导那里做。

更新:本文
中提到,就像@Yunakun 提到的那样,一切都在经历:

在管理器中,领导节点是记录集群中完成的所有操作(添加/删除节点、创建服务等)的节点。然后,Swarm 确保领导者的日志在每个管理器中被复制,以便在当前管理器不可用的情况下,其中之一可以担任领导者角色。

docker docker-swarm

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

用于生产网站的最简单的 Docker 部署工具

我对 Docker Hub、Cloud、Swarm、Swarm 模式、docker 部署、docker-compose 部署、...

对于完全适合单个物理服务器功能的生产网站,最简单的 docker 部署实践是什么?

有问题的站点有一个全面的 docker-compose.yml,它启动了大约 12 个服务,涵盖各种 Web 服务器、webpack 构建器和数据库。环境变量用于控制开发或生产。

命令行工具用于将 Webpack 包上传到 S3 存储桶,并将源映射上传到 Sentry。捆绑散列用作发布 ID,它存储在环境变量中(即 HTML 写入的<script src="https://s3.site.com/c578f7cbbf76c117ca56/bundle.js">位置将散列c57...写入 中的每个服务指向的环境变量文件中docker-compose.yml)。

我不需要多于一台服务器,也不需要全面的故障转移策略。我只想在部署代码更新时避免停机。我是一个单一的开发人员,所以我不需要 CI 或 CD。

我知道 docker-machine 已被弃用。Docker Hub 单独处理图像,所以我知道我需要一些处理“堆栈”或一组相关服务概念的东西。我知道 Docker Cloud 的 stack.yml 文件不支持buildenv_file密钥,所以我的 docker-compose.yml 不能直接使用

(在我的docker-compose.yml书中,我多次出现以下模式:

build:
  context: .
  dockerfile: platforms/frontend/server/Dockerfile
Run Code Online (Sandbox Code Playgroud)

在 Dockerfile 中,例如:

COPY platforms/frontend/server /app/platforms/frontend/server
Run Code Online (Sandbox Code Playgroud)

如果没有分离构建上下文和 Dockerfile 位置,撰写文件似乎不会转换为堆栈文件)。

此外,我认为 Docker Cloud / Swarm 用于管理多个故障转移服务器和循环路由等?我不认为我需要这些。

最后我开始意识到docker-compose deploy存在......这是我所追求的工具/策略吗?

web-deployment docker docker-swarm

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

Docker Swarm覆盖网络在节点之间不起作用

我试图在docker swarm中将我的docker服务连接在一起。

网络由2个覆盆子pi组成。

我可以创建一个名为的覆盖网络,test-overlay并且可以看到任何一个树莓派节点上的服务都可以连接到该网络。

我的问题:

我无法链接到覆盖网络节点之间的服务。

给定以下节点和服务配置,service1可以使用该地址http://service2连接到 service2。但不适用于http://service3。但是http://service3可以从访问service4

node1:
  - service1
  - service2
node2:
  - service3
  - service4
Run Code Online (Sandbox Code Playgroud)

我是docker swarm的新手,感谢您的帮助。

检查覆盖

sudo docker inspect network test-overlay在两个节点上都运行了命令。

在主节点上,这将返回以下内容:

[
    {
        "Name": "test-overlay",
        "Id": "skxhz8sb3f82dhh9jt9t3j5yl",
        "Created": "2018-04-15T20:31:20.629719732Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "10.0.0.0/24",
                    "Gateway": "10.0.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": { …
Run Code Online (Sandbox Code Playgroud)

networking docker docker-swarm docker-swarm-mode

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

Docker Swarm:docker stack 在未标记的图像上部署结果 &lt;none&gt;

我正在使用docker swarm 模式主机将我的注册表中的一些图像部署到我的应用程序服务器中:

我在注册表中的图像看起来像这样(正在执行docker images):

REPOSITORY                                                 TAG                   IMAGE ID            CREATED            SIZE
localhost:5000/myApp                                       G02R00C09_myTag   c1fc2242f9a0        2 hours ago         272MB
Run Code Online (Sandbox Code Playgroud)

我的 docker compose 文件下,我的服务如下所示:

---
version: '3.4'
services:
  ihm:
    image: myRegistryServer:5000/myApp:G02R00C09_myTag   
    stdin_open: true
    volumes:
    - /opt/logs:/opt/logs
    tty: true
    ports:
      - target: 80
        published: 80
        protocol: tcp
        mode: host
    deploy:
      mode: global
      placement:
        constraints:
          - node.labels.type == abc
    healthcheck:
      disable: true
Run Code Online (Sandbox Code Playgroud)

->执行后docker stack deploy

我得到了我的筹码和我的服务以及运行(当我运行docker stack lsdocker service ls,一切正常)

-> …

docker dockerfile docker-registry docker-compose docker-swarm

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

在 Docker for AWS 中找不到节点的 Docker 根目录

我使用Docker for AWS创建了一个 Docker swarm 集群。在这个集群的每个节点中,我发现Docker root dir is /var/lib/docker,但是,我在文件系统中找不到这个目录。

docker info 显示这个:

~ $ docker info
Containers: 7
 Running: 7
 Paused: 0
 Stopped: 0
Images: 9
Server Version: 17.06.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: awslogs
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
 NodeID: k8nw4j8bt0mhip541vurvd785
 Is Manager: false
 Node …
Run Code Online (Sandbox Code Playgroud)

diskspace amazon-web-services docker docker-swarm docker-aws

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

带有 Spring Boot 应用程序的 docker secret 在 docker swarm 模式下不起作用 /run/secrets

我正在尝试为 MySQL 容器和 Spring Boot 应用程序设置数据库密码的环境变量,这通常在 docker secrets 中声明。

echo "db_secured_password" | docker secret create secret -
Run Code Online (Sandbox Code Playgroud)

这里是配置文件:

spring boot 应用程序的-> application.yml

db:
  name: my-db
  host: localhost
  port: 3306
  username: root
  password: /run/secrets/db-root-password
spring:
  application:
    name: core-backend
  datasource:
    url: jdbc:mysql://${db.host}:${db.port}/${db.name}
    username: ${db.username}
    password: ${db.password}
Run Code Online (Sandbox Code Playgroud)

用于 docker swarm 模式下的 docker 堆栈 -> docker-compose.yml

version: '3.1'

services: 

  mysql-db:
    container_name: mysql-db
    image: mysql:8.0.12
    deploy:
      restart_policy:
        condition: on-failure
    volumes:
      - ./data/mysql:/var/lib/mysql
      - ./conf/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      - MYSQL_ROOT_PASSWORD=/run/secrets/db-root-password
      - MYSQL_DATABASE=my_db
    ports: 
      - "3306:3306"
    secrets: 
      - db-root-password …
Run Code Online (Sandbox Code Playgroud)

orchestration docker spring-boot docker-swarm devops

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