Articles of docker

在添加新的veth界面时运行脚本

Docker为每个创build的容器创build一个连接到桥( docker0 )的veth接口。 http://docs.docker.io/use/networking/ 我想限制这些新的veth接口的带宽。 我find了一个与奇迹般的做法。 不过,我想自动化这一点。 有没有办法让钩子在每次连接一个新的veth接口时运行一个脚本? 我已经研究过在/etc/network/if-up.d/添加脚本,但是只有在启动时veth添加veth 。 以下是我想要通知的一些系统日志。 我知道我可以尾巴这些日志,但是这种方法似乎有点哈克,必须有一种方式通过操作系统得到这个事件的通知。 May 2 23:28:41 ip-10-171-7-2 kernel: [22170163.565812] netlink: 1 bytes leftover after parsing attributes. May 2 23:28:42 ip-10-171-7-2 kernel: [22170163.720571] IPv6: ADDRCONF(NETDEV_UP): veth5964: link is not ready May 2 23:28:42 ip-10-171-7-2 kernel: [22170163.720587] device veth5964 entered promiscuous mode May 2 23:28:42 ip-10-171-7-2 avahi-daemon[1006]: Withdrawing […]

NoClassDefFoundError启动docker服务器

我正在尝试在jetty服务器上托pipe我的webapp(spring)。 我将我的战争文件复制到docker服务器中的“webapp”文件夹中。 我不是试图embeddeddocker服务器,而是试图在docker内托pipe应用程序(如tomcat)。 我dint安装docker,我只是下载jetty7邮编和解压缩到服务器。 我需要在3台Linux机器上进行设置。 在一台机器服务器启动就好。没有问题。 但在另外两个,当服务器启动它显示以下错误。 2013-04-24 18:52:59.540:INFO :: started oejwWebAppContext {/cpewebapp,file:/tmp/jetty-0.0.0.0-9080-cpewebapp.war-_cpewebapp-any-/webapp /},/ home / manooja /jetty-hightide-7.4.0.v20110414/webapps/cpewebapp.war 2013-04-24 18:52:59.648:WARN :: FAILED spring:java.lang.NoClassDefFoundError:org / springframework / web / context / support / DefaultWebEnvironment 2013-04-24 18:52:59.648:WARN :: FAILED oejwWebAppContext {/cpewebapp,file:/tmp/jetty-0.0.0.0-9080-cpewebapp.war-_cpewebapp-any-/webapp /},/ home / manooja /jetty-hightide-7.4.0.v20110414/webapps/cpewebapp.war:java.lang.NoClassDefFoundError:org / springframework / web / context / support / DefaultWebEnvironment 2013-04-24 […]

Vagrant,共享文件夹:利用NFS进行inotify

我们的Symfony2 web应用程序使用开发模式下的Assetic观察器在旅途中重新编译资产。 webapp运行在一个运行在Vagrant VM(Ubuntu 12.04 Precise)的Docker容器中。 主机是OSX 10.9 Mavericks,它通过NFS(v3)共享与VM共享代码文件夹,代码通过Docker中的主机/来宾卷安装在容器中。 由于inotify似乎无法通过NFSv3检测文件修改,因此观察者以非常缓慢的轮询模式(检测修改大约1/2分钟)工作。 我读过NFSv4是符合规范的,但是我没有发现任何好的资源。 有没有办法使NFS / inotify一起工作?

如何将我的容器上的localhost端口转发到我的主机上的localhost?

我在我的主机上运行一个守护进程(例如8008),我的代码通常与守护进程交互,例如联系localhost:8008。 我现在集装箱了我的代码,但还没有守护进程。 如何将容器上的localhost:8008转发到运行该容器的主机上的localhost:8008(因此也是守护进程)。 以下是我的主机上的netstat -tlnp 。 我希望容器在主机上将localhost:2009转发到localhost:2009 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:2009 0.0.0.0:* LISTEN 22547/ssh tcp6 0 0 :::22 :::* LISTEN – tcp6 0 0 ::1:2009 :::* LISTEN 22547/ssh

Dockerize用户会议

我正在寻找一些关于如何在Linux中dockerize用户会话的帮助。 我正在寻找的是如何做到这一点,当有人ssh进入一个帐户,做任何事情,当他们退出任何他们没有保存; 这就是我在下一次有其他人ssh进入它的时候设置它的方式。 这是CTF活动,我负责设立,而且对于我所要做的大部分工作都不了解,整个过程对我来说是一个学习的经验。 我希望如何build立一个很好的解释在这里解释: http : //overthewire.org/help/sshinfra.html

docker容器如何比主机操作系统有更多的内存?

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE Image_Name latest d8dcd701981e About an hour ago 6.565 GB 我正试图在我的客户操作系统(ubuntu14.04)中运行这个镜像,这是使用虚拟盒子运行的。 我已经为我的客户操作系统(Ubuntu 14.04)分配了4GB内存,但是当我在客户操作系统中运行我的容器并使用docker stats gigantic_cori检查docker docker stats gigantic_cori它显示内存限制为5.028GB。 这怎么可能?? CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O gigantic_cori 0.02% 4.6 GB / 5.028 GB 2.02% 44.43 MB / 20.51 MB 580.2 MB / 3.196 […]

高山linux:pmap输出不显示RSS

我有一个Docker容器,运行一个高山linux的基础镜像,当我进入docker容器并运行命令: pmap -x [pid] 我在输出中看到的标题是: Address Kbytes PSS Dirty Swap Mode Mapping 我实际上明确寻找RSS(驻留集大小)。 为什么这个标题没有出现在输出中?

Docker以root用户身份挂载一个卷

问题描述 我有一个Docker镜像,它正在执行大量的卷安装选项。 它的构build方式使得默认用户不具有root权限。 但是,我需要确保,当我装入卷时,由于安全问题,它以root用户身份挂载,而不是作为当前工作用户挂载。 (当前正在运行的非root用户不得删除已安装卷中的任何文件。) 例 从主机: docker run -it -v /path/to/mount:/container/mounting/path image-name 在容器内部 current-user@docker-container : /container/mounting/path所有文件都必须拥有所有者权限root root而不是current-user current-user 。

如何使我的Docker容器通过第二个接口与另一个节点通信?

我正在努力执行一个可悲的testing,其中涉及到sandbox01networking中的服务器与在“Docker Host”服务器中运行的Docker容器之间的通信(该计算机与sandbox01networking中的其他节点位于同一个子网中。即在10. *地址/范围内有一个名为ens34的接口,在9 *networking上还有一个eth0接口,允许它访问外部世界:下载软件包,docker图像等等。 )。 无论如何,这里有一个图来说明我有什么: 问题:无法在sandbox01子网(10. *networking)中的节点和容器之间进行通信。 例如,someserver.sandbox01→mydocker2:ens34 :: docker0 :: vethXXX→容器只有当我停止iptables,这使得事情真的很神秘! 只是想知道如果你面临任何类似的问题..任何想法将不胜感激。 谜题:经过多次testing,确认容器不能与10. *networking中的任何其他节点进行通信 – 它的行为不如预期:它应该通过其网关docker0(172.17 .0.1),并通过docker主机中的路由表find与“someserver.sandbox01”(10.1.21.59)进行通信的path。 它只在我们让它在iptables中处理MASQUARADE时才起作用。 但是,Docker会自动添加这个规则: -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -c 0 0 -j MASQUERADE -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -c 0 0 -j MASQUERADE **请注意那里的“!-o docker0”,所以Docker不希望我们掩盖发送请求的IP地址? 不知何故,这是在搞乱沟通 容器响应任何通过IP 9的通信。*(eth0) – 即,我可以从我的笔记本电脑发送请求 – 但从来没有通过10. *(ens34)。 […]

通过nghttp2使用带有HTTP \ 2支持的cURL连接到Apple的APNS

我试图按照本教程来编译带有HTTP / 2支持的cURL。 我使用的是Docker,而我的应用程序基于使用Debian的官方PHP Docker镜像 ,尽pipe我在运行Vagrant VM的Ubuntu机器上也产生了相同的问题。 起初似乎没有问题。 确实,运行curl –version显示了我所期望的一切: curl 7.47.1 (x86_64-pc-linux-gnu) libcurl/7.47.1 OpenSSL/1.0.1k zlib/1.2.8 libidn/1.29 libssh2/1.4.3 nghttp2/1.7.1 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets […]