Articles of 容器

LXC容器,没有LAN – 互联网接入

我正在openSuSE 42.1主机上build立一个LXC容器。 主机有完整的Internet访问,但容器没有。 容器可以ping主机,但在局域网或互联网上没有其他东西。 我认为这个问题可能是如何在主机上configuration网桥,但我看不到如何解决这个问题。 主机有eth0和br0。 br0已分配一个静态IP地址等 在YAST我有默认的IPv4网关为192.168.2.1和设备为br0 这是主机的networking细节 route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway.localdo 0.0.0.0 UG 0 0 0 br0 192.168.2.0 * 255.255.255.0 U 0 0 0 br0 netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.2.1 0.0.0.0 […]

将Docker同时用于长时间运行和短时间运行的进程是否合适?

假设我正在构build一个调整和优化图像文件的微服务。 这是一个长时间运行的守护进程,它提供了一个HTTP API来响应标准的GET / POST响应。 根据我对Docker的了解,这是一个集装箱化的完美用例 – 一个进程(HTTP服务器守护进程)无限期地运行在专用容器中。 对我来说,事情变得模糊的是,如果我们更深入地考虑这个服务的可能的构build方式。 比方说,对于每一个进来的请求,服务都会产生一个ImageMagick进程来调整图像的大小,然后是另一个pngquant或类似的进程来减小文件的大小。 由于这些程序将处理可能不可靠的用户提供的图像数据,所以一旦这些新版本发布,就能够将每个组件更新到最新的可用版本,这一点很重要。 但是,我如何根据Docker镜像和容器来分解这些组件呢? 我已经提出了一些不同的方法,但似乎仍然缺less一些东西: 一个大容器 在构buildHTTP API容器时,同时安装/编译ImageMagick / pngquant实用程序。 至于API守护进程知道,就像在任何其他计算机上运行。 要更新一个二进制文件,重build整个容器(即使API守护进程本身没有改变)。 如果需要独立testing/开发ImageMagick,可能会很尴尬,因为这不是这个容器布局的重点。 2.容器运行容器。 HTTP API是它自己的容器,ImageMagick是它自己的容器,pngquant是它自己的容器,等等。 当API处理需要调用这些实用程序之一的请求时,API代码会启动一个容器来转换一个图像文件,并且一旦转换完成,该容器就会被销毁。 据我所知,HTTP API代码需要一些非常高的权限才能创build一个新的容器; 从安全的angular度来看,这可能不是合理的做法。 3.包装和胶水。 将ImageMagick和pngquant包装在自定义的长时间运行的守护程序代码中,这样这些容器永远不必退出。 根据需要让HTTP API容器通过Dockernetworking与其他人进行通信。 似乎有许多毫无意义的间接和复杂性,没有真正的好处。 4.关于图像构图的东西,我失踪了。 它看起来并不像一个干净的方式,可以从多个可独立replace的图像中“拼凑”出一个容器。 如果有一种方法可以将包含ImageMagick,pngquant和HTTP API之一的多个图像组合到一个容器中,这将会很有趣。 根据我所看到的,replace/修改图像也会改变在其上面构build的所有图像,使得这种方法与#1没有什么不同。 我最关心的是能够独立开发/构build/testing/部署容器软件堆栈的组件,而不用重build或重新安装没有改变的部分。 如果这与Docker的devise理念冲突太强烈,我会愿意改变我对这种方法的看法或寻找不同的工具。

Ubuntu 17.04主机上的CentOS7 LXC容器shell访问

我知道这可能是我的代表谷歌技能缺陷,但对于上帝的爱,我不能shell到Ubuntu 17.04主机上的CentOS 7容器。 user@ubuntu1704:~$ lxc shell centos7 user@ubuntu1704:~$ 绝对没有任何反应…没有错误,我不能find一种方法来指定login用户名和密码。 这是我如何启动容器 lxc launch images:centos/7/amd64 centos7 它下载了图像并启动它。 信息显示一切都很好,并有正确的IP和一切。 默认SSH连接被拒绝(SELinux) 请帮忙!! 非常卡住! 非常感谢 !!

无头Linux服务器的Web服务任务

我只需要在我的服务器上运行基于文本的应用程序。 想想LAMP + ssh。 似乎没有必要安装整个发行版,如Ubuntu,只是为了启动Apache并提供我的一个Web应用程序。 相反,它将是一个更轻量级的发行版,它很容易在一个容器(lxc docker)以及我的旧硬件,虚拟机以及… 这种“轻型文本服务器发行版”是否存在?

反向代理Linux容器

我试图在我的Ubuntu 14.04主机上设置一个反向代理,这样我就可以运行多个网站,每个网站都在自己的LXC容器(一天泊坞站,但一次一步)。 在这个例子中,网站/主机名是: ubuntu1.mydomain.com ubuntu2.mydomain.com 容器是使用名称ubuntu1和ubuntu2创build的。 当我尝试设置iptables转发到这些主机名使用以下命令: sudo iptables -t nat -A PREROUTING -d ubuntu1.mydomain.com -j DNAT –to-destination 10.0.3.xxx (10.0.3.xxx是lxc网桥10.0.3.1上的容器的IP地址)我得到以下错误: iptables v1.4.21: host/network `ubuntu1.mydomain.com' not found 有没有办法解决这个问题?

Docker附加到curses进程

我正在尝试使用docker attach附加到基于curses的graphics化进程: $ docker run –name irssi -it pandrew/irssi irssi 当你使用^P^Q从这个进程中分离出来,然后用docker attach irssi重新docker attach irssi ,看起来没有任何事情发生。 但是,该过程会重新连接,因为您可以键入命令,并且可以通过触发重绘来缓慢地构buildgraphics界面。 尽pipe如此,重新join后,这个过程的行为却很奇怪。 但是,如果你最初在screen运行这个进程,一切工作正常: $ docker run –name irssi -it ${PREVIOUS_IMAGE_PLUS_SCREEN} screen irssi 您可以从容器中分离并重新附加,并且关于屏幕的内容会导致irssi会话正常运行。 看起来irssi有一些能力来检查是否“脏”,并重画屏幕: https : //github.com/irssi/irssi/blob/master/src/fe-text/irssi.c#L123 。 任何人都可以帮助解释这里发生了什么? 谢谢。

我可以在Windows Server 2016的多个容器中部署相同的应用程序吗?

我正在整合一堆超级老服务器(〜200)。 所有的代码已经调整,可以在一个盒子上运行。 除了有一个第三方Web服务应用程序在这些服务器上的每个服务器上侦听套接字。 供应商不会更改应用程序,以便能够在单个服务器上工作。 所以我已经阅读了Windows Server 2016中即将发布的容器,尽pipe我仍然没有完全理解它们。 我想知道是否可以部署容器的200个实例,每个容器都运行这个Web服务。 该应用程序本身是非常容易的资源。 这是集装箱化的好例子吗?

从正在运行的容器中提取泊坞窗卷

我/var/lib/docker/volumes目录意外丢失。 有些容器现在正在运行,服务不会丢失任何文件。 例如,我正在运行一个Maven回购(Sonatype Nexus),图书馆仍然很好。 是否有可能揭示正在运行的容器的容量? 容器运行: Sonatype Nexus GitLab 我的世界 – 服务器(不必要的)

systemd-networkd:关于`/ etc / systemd / network`和`/ usr / lib / systemd / network'之间的区别

我开始在主机和systemd-nspawn容器上尝试systemd-networkd。 在禁用NetworkManager等所有其他networkingpipe理服务之后,在主机上创build了.network文件 /etc/systemd/network 一切正常。 在systemd-nspawn容器中,系统忽略了插入的.network文件 /etc/systemd/network/ 即使我在[Match] .network文件部分正确匹配networking适配器名称(host0)。 以后再用 # networkctl status host0 我已经发现这样的接口正在从中configuration /usr/lib/systemd/network/80-container-host0.network 文件。 我插入了正确的networking设置,一切正常。 从man systemd-networkd : The configuration files are read from the files located in the system network directory /usr/lib/systemd/network, the volatile runtime network directory /run/systemd/network and the local administration network directory /etc/systemd/network. 问题: system network directory和local administration network directory什么区别? […]

HPC批处理容器

我们面临的问题是很多人想在我们的高性能计算集群上运行不同的科学软件。 每个用户都需要一组不同的库和库版本,我们不希望pipe理员每次都要处理新库的安装。 所以我们考虑使用Docker容器来实现这个目的:每个用户都可以使用他需要的用户空间库来设置自己的容器,然后使用这个容器运行批处理作业。 但是,正如我所看到的那样,docker主要关注的是服务而不是批处理作业 :通常你有一个(例如web)服务,这个服务可以运行所有的时间和处理新的工作(这基本上总是与新的input数据),只要他们进来。 我们的情况是完全不同的:一个新用户应该能够设置应该在硬件上运行的新任务,并且应该为他的批处理工作获得一定数量的资源。 因此,我想知道是否已经有针对这种情况的解决scheme。 我看了一下https://github.com/NERSC/shifter ,似乎正朝着正确的方向发展,但发展已经停滞。