我想用下面的docker文件作为学习puppet的基础。 它的写法是运行一些傀儡命令,然后立即退出。 我试图了解容器告诉自己要closures的位置,以便我可以修改它以保持运行。 Dockerfile如下: FROM ubuntu:16.04 MAINTAINER Gareth Rushgrove "[email protected]" ENV PUPPET_AGENT_VERSION="1.8.3" UBUNTU_CODENAME="xenial" LABEL org.label-schema.vendor="Puppet" \ org.label-schema.url="https://github.com/puppetlabs/puppet-in-docker" \ org.label-schema.name="Puppet Agent (Ubuntu)" \ org.label-schema.license="Apache-2.0" \ org.label-schema.version=$PUPPET_AGENT_VERSION \ org.label-schema.vcs-url="https://github.com/puppetlabs/puppet-in-docker" \ org.label-schema.vcs-ref="a2b1fbbc73177ddc3def23d167f9beb9c3ef9f6c" \ org.label-schema.build-date="2017-02-21T17:25:14Z" \ org.label-schema.schema-version="1.0" \ com.puppet.dockerfile="/Dockerfile" RUN apt-get update && \ apt-get install –no-install-recommends -y wget ca-certificates lsb-release && \ wget https://apt.puppetlabs.com/puppetlabs-release-pc1-"$UBUNTU_CODENAME".deb && \ dpkg -i […]
我有一个IPv6本地容器在端口8000上运行一个小的webapp。 在Docker主机上,我可以使用全局IP访问webservice,但是从另一个主机连接时却得到“连接被拒绝”。 但是,容器可以从其他主机ping通。 容器中的服务工作 # curl "http://[2a01:4f8:10a:2cc5:0:242:ac11:2]:8000" I'm b6032b33bc12 但是,从另一台主机运行: {2.1.5p273} curl "http://[2a01:4f8:10a:2cc5:0:242:ac11:2]:8000" curl: (7) Failed to connect to 2a01:4f8:10a:2cc5:0:242:ac11:2 port 8000: Connection refused 但是,ipv6地址是可以ping通的: {2.1.5p273} ping6 2a01:4f8:10a:2cc5:0:242:ac11:2 PING 2a01:4f8:10a:2cc5:0:242:ac11:2(2a01:4f8:10a:2cc5:0:242:ac11:2) 56 data bytes 64 bytes from 2a01:4f8:10a:2cc5:0:242:ac11:2: icmp_seq=1 ttl=60 time=0.385 ms 64 bytes from 2a01:4f8:10a:2cc5:0:242:ac11:2: icmp_seq=2 ttl=60 time=0.452 ms 我错过了什么? 关于我的环境的更多细节: # docker – Docker […]
我在Amazon Web Services上通过kops设置了一个kubernetes集群 我有一个2个网站的设置。 一个是通过SSL / TLS / https保护的,另一个是http。 两者都是WordPress的网站。 域名更改为保护网站身份 Ingressconfiguration: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: my-rules spec: tls: – hosts: – site1.com secretName: site1-tls-secret – hosts: – www.site1.com secretName: site1-tls-secret rules: – host: site1.com http: paths: – path: / backend: serviceName: site1 servicePort: 80 – host: www.site1.com http: paths: – path: / […]
我正在运行Docker 0.9.0 uname -a Linux 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 我有40个容器一次运行。 每个容器都相当简单 – 它在Node进程中运行一段代码。 无限循环监听更多的代码片段在Node中运行。 偶尔我会标记这些容器被杀死,然后我启动另一个容器来代替它。 我一直在遇到内存错误。 有时候一切崩溃,Docker报告“无法为新容器分配内存”,有时候套接字上只有一个超时。 不断报告猫meminfo和调用“免费”。 这个报告表明我有足够的内存未使用。 命令 ps –sort -rss -eo rss,pid,command | grep docker 在不同的情况下告诉我,由于新的容器正在取代旧的容器,驻留集大小的内存不断扩大。 如果我现在停止服务,并等待一小时,这有点下降,但从来没有达到以前的水平。 例如,它永远不会回落到原来的40个容器被创build的水平。 pmap `pidof docker` 告诉显示所有条目都是[anon] – 据我所知这是malloc保留的内存。 Docker守护程序RSS分配的崩溃点约为2GB,最新的时候约为40M。 我不确定这是否是Docker漏洞/内存泄漏。 如果免费报告4.5G未使用,这将如何导致内存不足错误? 我的系统没有交换。 重要详细信息:Docker无法通过远程API删除具有AUFS驱动程序错误的已杀死的容器。 由于这个原因,我依靠外部cron通过CLI去除停止的容器。
我已经读过,基本的亚马逊阿米已经build立在docker支持。 有一些我不明白,也许有人可以帮忙。 VM(AWS实例)比Docker容器启动速度慢吗? 我会从2个运行Docker应用程序的小型VM中获得更多性能,而不是1个运行2个Docker应用程序的大型VM? 是否有任何场景/服务可以利用虚拟机(AWS实例)的启动速度利用容器的启动速度来自动调节应用程序? 谢谢
我正在试图从官方的Arch Linux镜像中构build一个Docker镜像。 这些是我迄今为止所做的事情: 我推出了官方的Arch Linux Image: docker pull base/archlinux 我写了这个“Dockerfile”: # Set base image FROM base/archlinux:latest # Fix mirrorlist file #RUN rm /etc/pacman.d/mirrorlist #RUN echo "Server = http://…" >> /etc/pacman.d/mirrorlist #RUN echo "Server = http://…" >> /etc/pacman.d/mirrorlist #RUN echo "Server = http://…" >> /etc/pacman.d/mirrorlist #RUN echo "Server = http://…" >> /etc/pacman.d/mirrorlist # Update pacman and […]
我想通过在我的networking上分配静态IP地址来configurationDocker容器,使其看起来像一个真正的系统。 目前我在主机上有一个networking桥接设置(br0)。 我在/etc/default/docker文件中configuration了DOCKER_OPTS="-b=br0" 。 我可以通过他们的/etc/network/interface文件为每个容器分配静态地址。 问题是Docker将继续自行分配IP地址。 (如何阻止这个?)更麻烦的是它现在将使用桥接networking的IPscheme。 这将导致networking问题,因为它可以/将分配已经在networking上使用的地址。 问题: networking挂起/暂停 Pinging容器时的回应地址可以改变。 Error messages such as this are seen in the logs of the host: kernel: [31912.876161] br0: port 3(vethb228701) entered disabled state kernel: [31913.441517] device veth122d9f8 left promiscuous mode kernel: [22491.609856] audit: type=1400 audit(1434148604.621:124): apparmor="DENIED" operation="getattr" info="Failed name lookup – disconnected path" error=-13 profile="/usr/sbin/ntpd" name="var/lib/docker/aufs/diff/eb00895db3d297979df741cd560ccbea2ab4d572264bd703fc6cbc7ea2acb5c4/usr/lib" […]
在半定期的基础上,我已经看到GCE实例冻结,并从串口控制台收到以下错误消息: g[1375589.784755] BUG: unable to handle kernel NULL pointer dereference at 0000000000000078 g[1375589.786206] IP: [<ffffffff810a67d9>] check_preempt_wakeup+0xd9/0x1d0 g[1375589.787341] PGD 5da04067 PUD db83067 PMD 0 g[1375589.788607] Oops: 0000 [#1] SMP g[1375589.788705] Modules linked in: veth xt_addrtype xt_conntrack iptable_filter ipt_MASQUERADE iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 ip_tables x_tables nf_nat nf_conntrack bridge stp llc aufs(C) softdog crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel […]
我正在尝试创build一个包含openssh服务器的映像,并在调用运行命令时启动它。 我采取了以下步骤: docker pull ubuntu docker run -d -it ubuntu bash apt-get update apt-get install openssh-server -y exit docker ps -a docker commit <CONTAINER ID> myimg // tried the following three, same results docker run -d myimg "/usr/sbin/sshd" docker run -d myimg /usr/sbin/sshd -D docker run -d myimg service ssh start 这运行的形象,然后立即退出,我想要得到的服务跟上。 我究竟做错了什么?
我正在为我们的服务器构builddocker镜像,并且在创buildDOCKERFILE时寻找与多环境支持相关的最佳实践。 服务器的主要目的是在Centos 6之上运行LAMP,并且要使DOCKERFILE尽可能通用,以支持开发和生产环境。 图像将有很多常见的configuration/使用情况,并有一些差异。 差异例如: 仅限制作:监视工具,AntiVirus和不同的LAMPconfiguration 仅开发:xdebug,剖析utils和不同的LAMPconfiguration 我想过使用如下结构的东西: 定制的基本操作系统(C1) PROD。 基本操作系统(C1E1) 开发。 基本操作系统(C1E2) Web图像(httpd,apache ..)(C2) PROD。 调整(C2E1) 开发。 调整(C2E2) DB图像(C3) PROD。 调整(C3E1) 开发。 调整(C3E2) 数据图像(C4) PROD。 调整(C4E1) 开发。 调整(C4E2) Samba映像(仅限dev)(C5) 但是正如你所看到的那样,用现有的inheritance机制是不可能的,即使是这样,也是不可维护的。 我找不到在DOCKERFILE中使用ENV条件的方法(例如,仅在RUN命令中的基于Linux的条件下)。 目前我正在使用以下结构: 基础图像(常见的东西,如LAMP,utils ..) 开发。 图像(开发特定的使用情况/configuration) PROD。 Image(Prod。specific …) 以上是否有最佳做法? 图像的重复(双重维护)是唯一的可能性?