Articles of Docker

编写Apache2日志到stdout / stderr?

我在Docker容器中运行Apache2,并且不想向磁盘写入任何内容,将日志写入stdout和stderr。 我已经看到了一些不同的方法来做到这一点( Supervisord和stdout / stderr , Apache访问日志到标准输出 ),但这些看起来像黑客。 有没有办法默认这样做? 要清楚的是,我不想拖尾日志,因为这会导致事情被写入容器中的磁盘。

docker机在现有的“通用”主机?

我有我的局域网上有一台机器,我有SSH访问。 我如何设置它,所以我可以使用docker-machine与它沟通? 有一个项目( boot2docker )用于创build用于新主机的ISO,例如,当使用VirtualBox,Digital Ocean等启动一个新实例时,我希望这个设置不需要对已经设置好的机器进行设置,只需要运行docker机“节点”服务。

是否有可能使用Docker为用户分离网站?

我pipe理服务器,用户有自己的网站,可以通过FTP访问(如托pipe公司),而不是孤立的LAMP堆栈进程的工作,我想知道是否有可能实现docker和使用每个网站的图像。 据我所知,你可以通过他们的端口暴露Docker实例,所以如果你在同一台服务器上运行两个docker实例,你将不得不公开两个不同的端口。 但有可能导出不是端口,而是服务器名称,如: www.somewebsite.com:Docker实例1 www.otherwebsite.com:Docker实例2 www.etc.com:Docker实例… 而且,在同一台服务器上。 我想在服务器上只安装Apache,这会根据服务器名称将请求redirect到专用的Docker实例,但是我必须在任何Docker实例上安装Apache(也是!)和MySQL。 这是可能的,此外,这是performance有趣(或根本没有)? 感谢您的帮助。

计算来自Docker容器的带宽

我想弄清楚如何跟踪来自Docker容器的带宽。 通常我使用–uid-owner作为标记来跟踪给定用户的带宽使用情况。 但是,即使当我运行所有的进程作为docker容器内的用户–uid-owner不起作用。 而不是使用–uid-owner ,我试着跟踪所有来自docker创build的虚拟以太网设备的数据包。 然而,这最终也没有做任何事情:不pipe我尝试什么,都没有发现数据包。 绝望之余,我试着把规则放在所有的链条上,但都没有结果。 Chain PREROUTING (policy ACCEPT 3041 packets, 7849454 bytes) num pkts bytes target prot opt in out source destination 1 0 0 MARK tcp — veth5a36 any anywhere anywhere MARK set 0x1 Chain INPUT (policy ACCEPT 273 packets, 23305 bytes) num pkts bytes target prot opt in out source […]

configurationJetty以接受来自Ubuntu Lucid上所有主机的连接

我想Jetty服务端口8080上的任何主机连接。我的/etc/default/jetty文件有: – NO_START=0 JETTY_HOST= JETTY_PORT=8080 服务器是基于Lucid Lynx 32位服务器AMI的EC2小型实例。 APTconfiguration为启用多重configuration,并启用规范合作伙伴存储库。 Jetty是6.1.22从伙伴存储库。 当我使用sudo /etc/init.d jetty start ,它起作用,并且监听来自本地主机的连接,但不监听其他人的连接: – ubuntu@ip-10-224-70-51:/etc/network/if-pre-up.d$ sudo netstat -nlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 413/sshd tcp6 0 0 127.0.0.1:8080 :::* LISTEN 5655/jsvc tcp6 0 0 :::22 :::* LISTEN […]

更新Docker容器,无需停机

比方说,我有一个Web服务器的Docker容器(如Apache 2)。 现在我想更新它下面的操作系统。 这个SF答案说最好的方法是重build基础图像和我的Apache图像。 但是部署映像意味着停机时间,因为在创build新容器之前必须删除旧容器,因此只有一个容器绑定到端口80/443。 但是,如何以零停机时间部署此更新? 我应该使用负载均衡器并使用集装箱间通信吗? 我该如何更新负载均衡器?

api-get“在Docker下从服务器读取错误”

我在Bash中运行以下命令: DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && apt-get install -y build-essential git libncurses5-dev openssl \ libssl-dev fop xsltproc unixodbc-dev curl 它运行,但在中间失败: Get:96 http://security.debian.org/ jessie/updates/main linux-libc-dev amd64 3.16.7-ckt9-3~deb8u1 [991 kB] Get:97 http://security.debian.org/ jessie/updates/main curl amd64 7.38.0-4+deb8u2 [200 kB] Get:98 http://security.debian.org/ jessie/updates/main openjdk-7-jre amd64 7u79-2.5.5-1~deb8u1 [176 kB] Get:99 http://http.debian.net/debian/ jessie/main libgtk2.0-0 amd64 2.24.25-3 [2301 kB] Err http://http.debian.net/debian/ […]

在主机文件系统中安装Docker容器内容

我想能够检查一个Docker容器的内容(只读)。 一个优雅的方法是将容器的内容挂载到目录中。 我正在讨论在主机上安装容器的内容,而不是在容器内的主机上安装一个文件夹。 我可以看到现在在Docker中有两个存储驱动程序:aufs和btrfs。 我自己的Docker安装使用btrfs,并浏览到/ var / lib / docker / btrfs / subvolumes显示系统上每个Docker容器的一个目录。 但是这是Docker的一个实现细节,挂载这些目录到别的地方感觉不对。 有没有这样做的正确方法,或者我需要修补Docker来支持这些types的坐骑?

Apache的替代品

我们目前的堆栈是Apache + Tomcat + MySQL,使用ProxyPass AJP从Apache向Tomcat发起请求。 我们也在相同的网站上运行PHP for WordPress,因此需要工作.htaccess文件。 为了回应一个烦人的问题(请参阅此堆栈溢出页面) ,我们正在考虑替代堆栈。 请注意,我们通常非常喜欢apache,但这个问题是一个阻碍:如果我们无法修复它,我们就不能使用Apache。 替代scheme包括: 单独的Tomcat Glassfish(Java应用服务器,来自Tomcat) Jetty(Java服务器) 树脂 LightTPD(轻量级HTTP服务器) Nginx(轻量级HTTP服务器) 我看到它的方式,解决scheme分为两个阵营:纯粹的Java阵营,如Glassfish; 或者像我们目前的Apache + Tomcat这样的分裂阵营。 我们喜欢纯Java解决scheme的概念,因为更less的移动部件应该意味着更less的出错; 但他们中的任何一个都支持PHP, .htaccess文件等? 从理论上讲,我们可以用另一种方式进行拆分 – 只需要那些需要这些特性的代理,就可以有一个简单的前端代理Apache,但实际上这只是80%的请求。 人们build议什么select?

如何部署泊坞窗容器和关联的数据容器,包括内容?

我会先承认我对Docker相当陌生,而且我可能会从错误的假设中解决这个问题。让我知道如果是这样的话。 我已经看到很多关于Docker如何用于部署的讨论,但没有例子说明如何实际完成。 这是我认为这将工作的方式: 创build数据容器来保存机器A上的一些持久数据 创build使用数据容器中的卷的应用程序容器 做一些工作,可能改变数据容器中的数据 停止应用程序容器 提交并标记数据容器 将数据容器推送到(私人)存储库 从机器B的步骤6拉出图像并运行 拿起你在机器B上离开的地方 这里的关键步骤是第5步,我想这会保存当前状态(包括文件系统的内容)。 然后,您可以将该状态推送到存储库并从其他位置将其拉出,为您提供一个与原始存储库基本相同的新容器。 但似乎没有这样的工作。 我发现,步骤5没有做我认为它做的或步骤7(拉和运行图像)“重置”容器到它的初始状态。 我已经将一组三个Docker镜像和容器放在一起来testing:数据容器,每30秒将随机string写入数据容器中的一个文件的作者,以及一个简单地echo显数据容器文件并退出。 数据容器 创build于 docker run \ –name datatest_data \ -v /datafolder \ myrepository:5000/datatest-data:latest Dockerfile: FROM ubuntu:trusty # make the data folder # RUN mkdir /datafolder # write something to the data file # RUN echo "no data here!" > /datafolder/data.txt […]