Articles of Docker

在HAProxy后面滚动更新

我正在使用由在CentOS主机上运行的Docker容器组成的基础架构平台。 通过docker工具来缩放多个容器 领事服务发现。 服务注册的注册人 HAProxy作为负载平衡器 用于每次添加/删除容器时生成haproxyconfiguration的Consul-template。 每次我们更新我们的构build,新的容器被生成,旧的容器被删除。 问题是容器被即时移除,而不考虑容器所服务的现有请求。 理想情况下,我应该有一个信号来标记在维护或排水模式的容器,以便现有的连接可以服务,然后优雅地从haproxy从物理上去除。 有没有人遇到过这个问题,或通过容器完成类似的自动缩放工作stream程。

了解Docker中的Java内存行为

我们目前运行在Google容器引擎(GKE)中的Kubernetes集群由运行由Google维护的Debian GNU / Linux 7.9(wheezy)的n1-standard-1机器types(1个虚拟CPU和3.75 GB内存)组成。 由于我们服务的负载和内存使用量增加,我们需要将我们的节点升级到更大的机器types。 在我们的testing集群中尝试这个时,我们经历了一些对我们来说似乎很奇怪的事情。 JVM应用程序在部署到Google节点时消耗的内存似乎与节点上可用的内核数成正比。 即使我们将JVM最大内存(Xmx)设置为128Mb,在一台内核计算机上也会消耗大约250Mb(这是可以理解的,因为JVM由于GC,JVM本身等消耗的内存超过最大限制) 2核心机器上的700Mb( n1-standard-2 )和4核心机器上的1.4Gb( n1-standard-4 )。 唯一不同的是机器types,使用的是相同的Docker镜像和configuration。 例如,如果我使用n1-standard-4机器typesSSH进入一台机器,并运行sudo docker stats <container_name>我得到这个: CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O k8s.name 3.84% 1.11 GB / 1.611 GB 68.91% 0 B / 0 B 当我使用完全相同的(应用程序)configuration在本地运行相同的 Docker镜像(mac osx和docker-machine)时,我看到: CONTAINER CPU % MEM USAGE / […]

如何向rkt容器添加function

我很新(来自docker)。 在NET_ADMIN我可以将NET_ADMINfunction添加到容器中: docker run -d -p 53:53/tcp –cap-add=NET_ADMIN my_image 如何在rkt做到这rkt ?

Docker引擎不会让我删除旧的容器

我有一个docker主机与很多退出的容器。 由于我的注意力不集中,主机服务器在很大程度上由于这些容器而耗尽了磁盘空间。 我试图用docker rm删除它们,但得到一个关于没有足够的磁盘空间去除的错误。 但是,当时我没有意识到这个潜在的意义,不再有具体的信息。 然后,我释放了设备上的一些空间,然后再次尝试docker rm ,现在我得到这个消息: [me@machine ~]$ docker rm amazing_mahavira Error response from daemon: Driver devicemapper failed to remove root filesystem 92c18d5ebe6cgc328225353064f30b1cb78e1ea668aad05c3d3d6e7095e20524: devicemapper: Error running DeleteDevice dm_task_run failed 试图docker save我的图片也失败。 这里是docker info存储输出: Storage Driver: devicemapper Pool Name: docker-253:0-273125642-pool Pool Blocksize: 65.54 kB Base Device Size: 10.74 GB Backing Filesystem: xfs Data file: […]

如何使用docker-compose来解决容器的日志logging问题

在docker-compose.yml中描述的容器使用日志扩展来将日志发送到一个stream畅的容器。 version: "2" services: fluentd: image: fluent/fluentd:v0.14.8 container_name: fluentd nginx: image: nginx:1.11.5 container_name: nginx links: – fluentd logging: driver: fluentd options: fluentd-address: fluentd:24224 但是这个configuration不起作用,因为fluentd-address可以被主机(也就是主机)从外部看到,而不是从nginx容器内部看到。 所以它需要一种方法来知道容器外的容器的IP地址,但是以一种兼容的方式为docker-compose,有什么想法吗?

如何使用Swarm进行故障转移和负载平衡

我们正在使用docker,因为1/2年的“单一主机”设置没有麻烦。 但是现在我们想进一步使用Docker Swarm(最新版本)。 我们之前的设置只是将nginx作为Reverse-Proxys的单个主机,以及一些用于更新configuration并为新服务请求SSL证书的魔法。 我不明白:如何使用Docker Swarm设置故障转移/ HA 例如: 3个虚拟机都是Master + Worker(我知道不是完美的设置,但是我们必须省钱)。 现在让我们说GoDaddy与像myswarm.com这样的域名,这个域名必须设置为一个外部IP,我会selectSwarms虚拟机的外部IP地址,它应该可以工作。 但是当链接到域的虚拟机出现故障时会发生什么? 如何用Docker处理这种情况? 还是我需要2个HAProxy虚拟机和一些面向外部的VIP?

这个SSL证书有什么问题?

我使用Jetty运行Java servlet应用程序。 现在我想让它更加用户友好,并需要证书。 导入后(见上)浏览器(FF)仍然回收不安全的自签名证书。 如果这个工作现在或有什么更多的事情要做。 谢谢。 $ keytool -list -keystore key.ks -v Enter keystore password: ************** Keystore type: jks Keystore provider: SUN Your keystore contains 1 entry Alias name: mydomain Creation date: Aug 16, 2009 Entry type: keyEntry Certificate chain length: 2 Certificate[1]: Owner: CN=mydomain.com, OU=Domain Validated, OU=Thawte SSL123 certificate, OU=Go to https://www.thawte.com/repository/index.html, O=mydomain.com Issuer: […]

在同一主机上运行LXC和Docker

我现在运行一个私人服务器一段时间,当我设置它时,我使用LXC来将不同的服务彼此分开。 大约一个月前,我已经开始使用docker(对于工作以及私人),从现在开始,我希望将它用于新的服务(并慢慢迁移旧服务)。 长话短说:只要需要将一个服务迁移到另一个服务器上,是否可以在同一台主机上运行LXC和Docker? 该服务器运行的是Debian Jessie 64bit。

Docker无法访问主机上的Web服务器

我正在尝试在dockerized环境中设置python django Dockerfile FROM python:3.5-slim ENV PYTHONUNBUFFERED 1 RUN mkdir /code RUN pip install –upgrade pip WORKDIR /code ADD requirements.txt /code/ RUN pip install -r requirements.txt ADD . /code/ EXPOSE 8000 我build立这个django-app 。 泊坞窗,compose.yml django: container_name: django image: django-app:latest ports: – "8000:8000" volumes: – ./config/startup.sh:/startup.sh – ./app:/code command: /bin/sh /startup.sh startup.sh #!/bin/sh cd /code django-admin.py […]

在不同的主机操作系统上的Dockerfile

我是新来的Docker,我需要从我自己的dockerfile在linux系统上为PHP + Apache构build一个docker容器。 我看到一些dockerfile的例子,你可以使用apt-get来安装php,这对于Ubuntu或基于Debian的Linux系统是很有意义的。 但后来我需要在基于Redhat的Amazon linux上使用这个dockerfile。 我应该改变一切在百慕大docker文件,以使其工作?