Articles of Docker

如何finddocker容器的docker-machinenetworking适配器名称?

我想介绍networking变化到docker集装箱。 具体来说,我希望能够运行如下命令: sudo tc qdisc add dev vethecb732a root netem delay 500ms 400ms distribution normal 以及docker机环境内的其他相关的networkingconfiguration命令。 Docker似乎为docker-machine中运行的每个容器创build并命名一个networking适配器。 但是,我不确定如何将容器中可用的信息与实际随机生成的networking适配器名称相关联,以便正确执行上述命令。 当我从这个容器的docker-machine中的ip addr获得信息时: 22: veth5009782@if21: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 4a:f8:d0:05:b6:90 brd ff:ff:ff:ff:ff:ff inet6 fe80::48f8:d0ff:fe05:b690/64 scope link valid_lft forever preferred_lft forever 这些是容器的networking设置: "NetworkSettings": { "Bridge": "", "SandboxID": "3092a7a4d0c09b7461ec2683653f315ed872710e9f74656b6292ada8d2c45931", "HairpinMode": false, "LinkLocalIPv6Address": […]

Docker如何处理OOM杀手和内存限制?

我有一个docker容器,通过一个bash脚本启动一个简单的java(基于jgroups)的应用程序。 java进程被Xmx限制为128m,允许容器使用256m(交换被禁用)。 不幸的是,我不时遇到以下OOM消息: Jul 07 02:43:54 ip-10-1-2-125 kernel: oom_kill_process: 16 callbacks suppressed Jul 07 02:43:54 ip-10-1-2-125 kernel: java invoked oom-killer: gfp_mask=0x2400040, order=0, oom_score_adj=0 Jul 07 02:43:54 ip-10-1-2-125 kernel: java cpuset=0ead341e639c2f2bd27a38666aa0834c969e8c7e6d2fb21516a2c698adce8d5f mems_allowed=0 Jul 07 02:43:54 ip-10-1-2-125 kernel: CPU: 0 PID: 26686 Comm: java Not tainted 4.4.0-28-generic #47-Ubuntu Jul 07 02:43:54 ip-10-1-2-125 kernel: Hardware name: Xen HVM […]

docker容器没有写入主机上的安装卷

我正在写问题到docker容器的主机文件系统的挂载卷上 当构build容器以使容器将数据写入主机上的已安装卷以保持持久性时,是否有一些特殊的事情需要处理? 我已经看到容器写入到主机文件系统像官方mysql泊坞窗图像和其他几个,但是当我build立我自己的图像,我挂载在主机上的卷,我发现它不写入主机,但只能从主办。

为什么linux系统在普通的docker中修改工作,而不是在kubernetes下?

在容器中运行的命令是: echo never | tee /sys/kernel/mm/transparent_hugepage/enabled 这两个容器都作为特权运行。 但是在kubernetes docker容器中,命令失败,出现错误: tee: /sys/kernel/mm/transparent_hugepage/enabled: Read-only file system 并在普通的docker run -it –privileged alpine /bin/sh命令工作正常。 我已经在k8s和非k8s容器上使用docker docker inspect来validation特权状态,没有看到任何其他应该导致这个问题的列表 – 我已经在两个输出之间运行diff ,然后使用docker run进行修改以尝试重现在普通的docker问题,但失败(它保持工作)。 任何想法为什么kubernetes泊坞窗容器失败和普通docker容器成功? 这可以在这里重新定义: apiVersion: v1 kind: Pod metadata: name: sys-fs-edit spec: containers: – image: alpine command: – /bin/sh args: – -c – echo never | tee /sys/kernel/mm/transparent_hugepage/enabled && sysctl […]

在Docker Registry中显示依赖关系

概要 我们如何绘制或以其他方式获得Dockerregistry中Docker镜像依赖关系的概述? 细节 我们正在使用私有dockerregistry实例来本地托pipe一些Docker镜像。 我们有依赖于其他图像(通过FROM )的图像,例如: sun-java8-build -> tomcat -> our_app 这是非常简单的,但很容易让图像很快依赖相当多的基础图像。 我们如何能够概览哪些图像用于构build更多的图像? 这将有助于了解各种基础图像的变化的影响。

configurationiptables来保护运行Docker容器的服务器

我尝试使用Docker运行2个容器(问题不是特定于他们): MySQL(官方容器) Redmine(官方集装箱) 每个容器都有一个转发的端口: MySQL: 127.0.0.1:3000 -> 3000/tcp Redmine: 127.0.0.1:3306 -> 3306/tcp 正如你所看到的,目标是让他们只能在主机内访问。 一个Nginx服务器(不是通过Docker安装的)侦听端口80,并将任何请求redirect到Redmine容器端口(使用代理function: proxy_pass等)。 所有这一切完美的作品,当我去服务器IP,我可以访问Redmine。 但是,我想要使用iptables添加一些安全性。 所以,目标是: 全部默认删除(这一点是确定的) 允许Docker只在本地主机中生成业务 允许容器访问互联网(下载依赖关系,更新…) 允许访问SSH和Nginx(也可以) 首先,我尝试添加–iptables=false选项来停止–iptables=false搞乱我的iptables。 重启后,我认为,用干净的iptables(所有的政治默认设置为ACCEPT ,所以没有任何事情完成),一切都会工作。 但事实并非如此,我得到了来自Nginx的"502 Bad Gateway"响应。 我不明白为什么不添加额外的规则,如果Docker无法工作(如果全部是开放的,它应该工作…不是?)。 我试图阅读有关Docker中高级networking的文档,我也尝试了多个教程,但是我找不到阻塞Docker的东西: https://fralef.me/docker-and-iptables.html https://docs.docker.com/v1.8/articles/networking/ 我不是一个Linux / Docker / SysAdmin专家,所以也许,对于你们中的一些人来说,这是显而易见的(至less我希望!)。 不要犹豫,如果需要更多的细节问。 预先感谢您的回答。

如何估算用于AWS ECR中泊坞窗图像的存储和stream量?

我正在尝试使用AWS ECR的每月成本。 它将包括:传出stream量成本(下载图像)和存储成本(在ECR中存储图像)。 我们假设: 我们正在使用Mono构build一些Web服务(基础docker图像大小为500Mb); 我们的CI&CD服务器每月build立并推送图像到ECR 300次。 为简单起见,旧图像未被移除; 我们的编译代码在基本映像中增加了40Mb的附加层; 我们每个月从AWS下载图片60次; 第一个问题是: 如何估算每月存储量 ? 什么方程是正确的? Monthly_Vol_1 = 500 + 40 * 300; – 基础图像只存储一次 Monthly_Vol_2 =(500 + 40)* 300; – 每个图像都包含基本图像 第二个问题是: 如何估算来自AWS的每月stream量? 假设主机下载映像不会删除现有数据。 Monthly_Traf_1 =(500 + 40)* 60; – 每次下载基础图像和附加图层 Monthly_Traf_2 = 500 + 40 * 60; – 仅对第一张图像下载基本图像。 只有应用程序更新被下载 Monthly_Traf_3 = 40 * 60; […]

反向代理nginx不能提供子目录

这非常奇怪,我无法理解它。 我已经build立了一个nginx服务器来反向代理一个docker容器。 Nginx似乎能够服务一些页面,但不能服务于子目录,或者它可能无法提供dynamic内容。 我不完全确定这里发生了什么事情。 例如,我试图用以下configuration来反向代理activemqpipe理控制台,但似乎无法为子目录提供服务: server { listen 8162; server_name dockerdev1.site.com; ssl on; ssl_certificate /var/certificates/cert.com.crt; ssl_certificate_key /var/certificates/cert.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location / { include /etc/nginx/mime.types; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass https://dockerdev1.site.com:11113; try_files $uri $uri/ =404; } }

无法在Docker中curl链接的容器

我没有一个复杂的设置。 2个容器,一个用于我的应用程序,另一个用于我的API。 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8f07c240bee2 nginx "nginx -g 'daemon off" 13 hours ago Up 13 hours 443/tcp, 0.0.0.0:7010->80/tcp simtp_front_1 ae4296bd51d8 simtp_engine "php-fpm" 13 hours ago Up 13 hours 9000/tcp simtp_engine_1 4ae15fcba793 nginx "nginx -g 'daemon off" 6 days ago Up 40 hours 443/tcp, 0.0.0.0:7011->80/tcp simtpapi_front_1 cf04c9567201 simtpapi_engine "php-fpm" 6 […]

Docker容器崩溃的Ubuntu主机

非常意外,但如果我运行docker容器主机变得没有响应,没有进出,不能ping通,只有硬重启工程。 DMESG,sys和内核日志没有显示任何明显的东西 启发式诊断告诉我,当我的客户terminal踢dockerhibernate时崩溃… 这很模糊,但也许有人经历了类似的事情? 主机规格: Intel(R) Atom(TM) CPU Z3735F @ 1.33GHz Ubuntu的版本 ~$ uname -a Linux raccoon 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:43:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux docker工人 Docker version 1.9.1, build a34a1d5