小编viv*_*d4v的帖子

如何在docker撰写版本3中指定内存和CPU限制

我无法为版本3中指定的服务指定CPU和内存.

使用版本2,它可以在服务下使用"mem_limit"和"cpu_shares"参数.但它在使用版本3时失败,将它们置于部署部分似乎不值得,除非我使用swarm模式.

有人可以帮忙吗?

version: "3"
services:
  node:
    build:
     context: .
      dockerfile: ./docker-build/Dockerfile.node
    restart: always
    environment:
      - VIRTUAL_HOST=localhost
    volumes:
      - logs:/app/out/
    expose:
      - 8083
    command: ["npm","start"]
    cap_drop:
      - NET_ADMIN
      - SYS_ADMIN
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

如何使用docker compose v3直接在容器中挂载NFS共享/卷

我有一个v3的撰写文件,其中有3个服务共享/使用相同的卷.在使用swarm模式时,我们需要创建额外的容器和卷来管理整个群集中的服务.

我打算使用NFS服务器,以便将单个NFS共享直接挂载到群集中的所有主机上.

我在下面找到了两种方法,但它需要在docker主机上执行额外的步骤 -

有没有一种标准的方法,我可以使用docker compose v3直接使用/挂载NFS共享,只需执行少量/无步骤(我知道无论如何都需要"nfs-common"包)在docker主机上?

docker docker-compose docker-swarm docker-swarm-mode

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

如何在docker引擎群模式下跨多个主机共享卷?

我们可以在docker engine swarm模式下跨多个主机共享一个公共/单个命名卷,这是最简单的方法吗?

docker docker-swarm docker-engine docker-swarm-mode

18
推荐指数
1
解决办法
5333
查看次数

Kubernetes - 它在哪里存储秘密以及它如何在多个节点上使用这些秘密?

不是真正的编程问题,但很想知道 Kubernetes 或 Minikube 如何管理秘密并在多个节点/pod 上使用它?

假设我创建一个秘密来拉取图像,kubectl如下所示 -

$ kubectl create secret docker-registry regsecret --docker-server=https://index.docker.io/v1/ --docker-username=$USERNM --docker-password=$PASSWD --docker-email=vivekyad4v@gmail.com
Run Code Online (Sandbox Code Playgroud)

后端会发生哪些进程,k8s 或 Minikube 将如何在多个节点/pod 上使用这些进程?

kubernetes minikube

6
推荐指数
2
解决办法
2551
查看次数

Terraform(AWS 提供商)- Auto Scaling 组不会对启动模板更改生效

无法在使用启动模板时使启动模板与 ASG 一起工作,它使用一个小技巧与启动配置一起工作,即通过在 ASG 资源中插入启动配置名称,但它不适用于启动模板。
ASG 使用最新版本来启动新实例,但不会对预运行实例进行任何更改,尽管启动模板发生了变化。

我知道这是预料之中的,但我们是否有任何解决方法可以使启动模板与 ASG 一起使用,或者我们需要坚持启动配置本身?

TF 代码片段 -

resource "aws_launch_template" "lc_ec2" {
  image_id = "${var.ami_id}"
  instance_type = "${var.app_instance_type}"
  key_name = "${var.orgname}_${var.environ}_kp"
  vpc_security_group_ids = ["${aws_security_group.sg_ec2.id}"]
  user_data = "${base64encode(var.userdata)}"
  block_device_mappings {
    device_name = "/dev/xvdv"
    ebs {
      volume_size = 15
    }
  }
  iam_instance_profile {
    name = "${var.orgname}_${var.environ}_profile"
  }
  lifecycle {
    create_before_destroy = true
  }

  tag_specifications {
    resource_type = "instance"
    tags = "${merge(map("Name", format("%s-%s-lc-ec2", var.orgname, var.environ)), var.tags)}"
    } 
  tag_specifications {
    resource_type = "volume"
   tags = "${merge(map("Name", format("%s-%s-lc-ec2-volume", var.orgname, var.environ)), …
Run Code Online (Sandbox Code Playgroud)

terraform terraform-provider-aws

6
推荐指数
1
解决办法
1745
查看次数

AWS DMS | 错误:无法访问文件“ pgologic”:没有此类文件或目录

错误-

2019-06-17T05:00:11 [SOURCE_CAPTURE ]E: RetCode: SQL_ERROR SqlState: 58P01 NativeError: 1 Message: ERROR: could not access file "pglogical": No such file or directory;, Error while executing the query [1022502] (ar_odbc_stmt.c:2546)
2019-06-17T05:00:11 [SOURCE_CAPTURE ]E: RetCode: SQL_ERROR SqlState: 42P01 NativeError: 1 Message: ERROR: relation "pglogical.replication_set" does not exist;, No query has been executed with that handle [1022502] (ar_odbc_stmt.c:3722)
Run Code Online (Sandbox Code Playgroud)

我们每3个月左右收到一次此错误。重新启动任务可以解决问题,但是恢复不起作用。

复制插槽已存在,但似乎处于非活动状态-

   postgres=> select * from pg_replication_slots ;
                               slot_name                            |    plugin     | slot_type | datoid |   database    | active | active_pid | xmin | catalog_xmin …
Run Code Online (Sandbox Code Playgroud)

postgresql amazon-web-services aws-dms

6
推荐指数
1
解决办法
885
查看次数

dockerized HAProxy+Keepalived 实现 HA

我有一台主机,HAProxy 使用 docker compose 作为 docker 容器运行。我想水平扩展我们的 HAProxy,使其在多个主机上高度可用。

我读了一些关于 keepalived 的教程,但这是在主机上完成的,并且是作为主机安装的 HAProxy 服务器,而不是在 docker 容器中。

是否可以通过docker化的方式部署高可用的HAProxy?

(我知道我有虚拟化设置)

high-availability haproxy docker

5
推荐指数
1
解决办法
4828
查看次数

详细模式下的Docker“cp”命令

我习惯于将目录从主机广泛复制到容器,然后再将它们推送到存储库。有时我们可能需要监控在 Jenkins 构建期间推送/复制的文件名。

如何使用“docker cp”查看在复制操作期间复制了哪些文件?

docker

5
推荐指数
1
解决办法
4152
查看次数

如何使用 bash/sh shell 从容器内部终止容器进程 (PID 1)

我有一个场景,我有一个使用crond. 如果该特定脚本失败,我需要退出容器。似乎SIGKILL不适用于 PID 1。

如何使用 bash/sh shell 从容器内部终止容器进程 (PID 1)?

最小的例子 -

Dockerfile -

FROM alpine:3.5

ENV LOGS_DIR="/rest/logs/" CRON_LOG_FILE="${LOGS_DIR}/cron.log"

RUN apk add --update python py-pip zip bash && \
    pip install awscli && \
    mkdir -p ${LOGS_DIR} && \
    touch ${CRON_LOG_FILE}

COPY ./lr-s3.sh ./lr-entry.sh ./install_crontab.txt ./files_to_rotate.txt ./

RUN chmod +x /lr-s3.sh /lr-entry.sh && \
    crontab install_crontab.txt

ENTRYPOINT ["/lr-entry.sh"]
Run Code Online (Sandbox Code Playgroud)

入口点 -

#!/bin/bash

LOGS_DIR="${LOGS_DIR:-/rest/logs}"
CRON_LOG_FILE="${LOGS_DIR}/cron.log"

mkdir -p ${LOGS_DIR}
touch ${CRON_LOG_FILE}

ln -sf /proc/1/fd/1 ${CRON_LOG_FILE}

echo "Cron [Starting]"
exec …
Run Code Online (Sandbox Code Playgroud)

bash docker

5
推荐指数
1
解决办法
7622
查看次数

Jenkins 管道 - 通过电子邮件通知控制台错误日志

目前,我已经使用 Jenkinsfile 配置了一个作业,以便在发生故障时发送通知。

catch (err) {
    currentBuild.result = "FAILED"
    mail (to: 'viveky4d4v@gmail.com',
         subject: "Job '${env.JOB_NAME}'- (${env.BUILD_NUMBER}) has FAILED",
         body: "Please go to ${env.BUILD_URL} for more details. ");

    throw err
}
Run Code Online (Sandbox Code Playgroud)

如果作业失败,是否可以在电子邮件中也发送控制台日志?

jenkins jenkins-pipeline

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

使用 compose 文件在 swarm 模式下的 Docker 堆栈“--force-recreate”

是否可以在 docker swarm 模式下使用 compose 文件强制重新创建容器?(我知道在 Dockerfile 中使用 HEALTHCHECK)

目前我必须先删除堆栈然后再次部署它 -

$ docker stack deploy -c stg-sm-deploy-compose.yml --with-registry-auth MY-APP

$ docker stack rm MY-APP

$ docker stack deploy -c stg-sm-deploy-compose.yml --with-registry-auth MY-APP

是否有可能将以上 3 个命令替换为 -

$ docker stack deploy -c stg-sm-deploy-compose.yml --with-registry-auth MY-APP --force-recreate

docker docker-compose

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

列表中的 Ansible 字典 - 获取字典的键和值

我有一个 ansible 剧本,其变量值如下 -

"instances": [
    {
        "architecture": "x86_64",
        "tags": {
            "A": "B",
            "C": "D"
        }
    },
    {
        "architecture": "x86",
        "tags": {
            "A": "X",
            "G": "D"
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

实例列表是动态的,#values 在每次运行时可能会有所不同。

我想要 -

  1. 如果整个列表中存在标签键“A”,则获取键“architecture”的值。
  2. 如果整个列表存在标签值“D”,则获取键“architecture”的值。

我尝试过with_subelements,但没有运气,因为它需要一个列表。

ansible

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

在 Docker 容器内传递 AWS CodeBuild IAM 角色 [无法找到凭证]

在 CodeBuild 项目上配置的角色在运行时环境中运行良好,但在我们从容器内部运行命令时不起作用,它显示“无法找到凭据”。
让我知道我们如何在容器内开箱即用地使用角色。

amazon-web-services amazon-iam aws-codepipeline aws-codebuild

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