Questions tagged «docker»

Docker映像,容器,集线器以及与容器化平台相关的所有内容

3
Docker标签版本控制的最佳做法是什么?
我最近将我们的CI服务器挂接到git commit上,以构建docker映像。 我们构建了大约8个不同的容器,每个容器都有自己的语言/框架。一些是节点并具有package.json,其他一些是不包含语义版本信息的python服务。 我的问题不是关于如何创建标签,而是关于创建标签的值。 如何确保每个标签对特定图像都有唯一的语义版本号?谁应该是跟踪/增加构建版本的权威?

2
为什么在docker compose环境文件中损坏了环境变量
上下文:docker-compose启动多个容器,包括调用Flask应用程序的Gunicorn。我正在使用环境文件web/env.gunicorn来存储我的Gunicorn启动配置。该文件包含 GUNICORN_CMD_ARGS="--bind=127.0.0.1:8001 --workers=3" 问题是GUNICORN_CMD_ARGS管道中某处未正确处理。我在运行时遇到的错误docker logs gunicorn是 Error: '8001 --workers=3' is not a valid port number. 问题是,在我的设置中哪里的假设是错误的,从而导致环境变量混乱?在终端中手动运行时,将接受环境变量。Docker撰写文件如下所示 version: "3" services: # nginx: # image: nginx:latest # ports: # - "80:80" # volumes: # - ./nginx:/etc/nginx/conf.d # depends_on: # - web web: build: ./web container_name: gunicorn ports: - "8001:8001" environment: - APP_CONFIG_FILE=../config/development.py …

4
如何在代码存储库中构建与DevOps相关的代码和配置?
作为一家公司,我们一直在发展,我们的产品也在扩展,与DevOps相关的活动和努力也在不断增长-我们已经使用部署管道和其他插件从Bamboo转变为更加灵活和可配置的Jenkins。切换到Ansible并开始在本地和本地使用Docker。 所有这些都需要一定程度的编码或配置-Ansible脚本和配置,Jenkins groovy脚本,Dockerfile和YAML配置。 现在,我们已经创建了一个独立的“OPS”资源库和高层次的目录jenkins,ansible,docker和other(这是一个可怕的名字,但现在所有的“其他”的DevOps自动化的东西在那里)。 我们的方法感觉不正确,可能无法扩展,但是将与DevOps相关的代码保留在一个或多个代码存储库中的最佳实践和建议是什么?


1
Kubernetes CPU使用率和Docker容器指标冲突
我们最近将生产环境切换到Kubernetes。我想对容器实施CPU限制。我遇到了不一致的CPU指标冲突。这是我的设置: DataDog代理以 Daemonset 现有应用程序不受CPU限制地运行 有问题的容器是多线程Ruby应用程序 两个指标:kubernetes.cpu.usage.{avg,max}和docker.cpu.usage c4.xlarge 群集节点(以Kubernetes的术语来说是4个vCPU或4000m) kubernetes.cpu.usage.max报告有问题的集装箱约600m。docker.cpu.usage报告约60%。因此,在正常操作下1000m CPU限制将绰绰有余。 我将限制设置为1000m。然后docker.container.throttles明显上升kubernetes.cpu.usage.max并docker.cpu.usage保持不变。在此期间,系统全都屈服了。这对我来说没有意义。 我研究了Docker统计信息。似乎docker stats(和底层API)根据CPU内核规范了负载。因此,以我的情况来说,docker.cpu.usage以Kubernetes计,60%(4000m * 0.60)达到2400m。但是,这与任何Kubernetes编号都不相关。我做了另一个实验,以检验我的Kubernetes数不正确的假设。我将限制设置为2600m(以获得一些额外的净空)。这没有导致任何节流。但是Kubernetes观察到CPU使用率没有变化。这让我感到困惑。 所以我的问题是: 这是否感觉像Kubernetes中的错误(或堆栈中的某物?) 我的理解正确吗? 我的后续问题与如何正确确定Ruby应用程序的CPU有关。一个容器使用彪马。这是具有可配置线程数量的多线程Web服务器。HTTP请求由线程之一处理。第二个应用程序是使用线程服务器的节俭服务器。每个传入的TCP连接均由其自己的线程处理。连接关闭时线程退出。Ruby作为GIL(全局解释器锁),因此一次只能有一个线程执行Ruby代码。这确实允许多个线程执行IO之类的操作。 我认为最好的方法是限制每个应用程序中运行的线程数,并根据线程数近似计算Kubernetes CPU的限制。进程不是分叉的,因此很难预测CPU的总使用量。 这里的问题是:如何正确预测这些应用程序的CPU使用率和限制?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.