Tag: lxc

docker在使用lxc驱动时设置cpuset错误

我运行docker使用lxc驱动程序(我的docker版本:1.0,OS:centos 6.5)。 但是当我设置cpuset时运行一个容器失败,错误信息如下。 docker run –net=none –privileged=true –cpuset="0,1" -m 512m -it centos-mini /bin/bash lxc-start: Permission denied – write /cgroup/cpuset/lxc/c9d82fec23b4a43e4cd1c200a7ba1453afe34378c4d489f3e932afd88968e87b/cpuset.cpus : Permission denied lxc-start: Error setting cpuset.cpus to 0,1 for lxc/c9d82fec23b4a43e4cd1c200a7ba1453afe34378c4d489f3e932afd88968e87b lxc-start: failed to setup the cgroups for 'c9d82fec23b4a43e4cd1c200a7ba1453afe34378c4d489f3e932afd88968e87b' lxc-start: failed to spawn 'c9d82fec23b4a43e4cd1c200a7ba1453afe34378c4d489f3e932afd88968e87b' 这里有什么问题? 如何解决这个问题? 非常感谢。

如何指定容器的主机使用率的cpu百分比

与docker–lxc-conf =“lxc.cgroup.cpuset.cpus = 0我们可以指定CPU使用率 docker run -d –name web –lxc-conf="lxc.cgroup.cpuset.cpus = xxx 有没有办法做到这一点无花果?

在镜像,但独立的生产环境中发生故障

我在“开发环境应尽可能接近生产环境”方面遇到一些问题。 (生产机器的操作系统是Linux。) 我对开发步骤的理解(粗略): 代码,编译,testing/运行,重复 “通常情况下,”我会在自己的机器上浏览这些代码,然后将代码推送到CI进行testing,并可能进行部署。 CI将负责在与生产相匹配的环境中运行testing,这样,如果testing通过,则认为代码在生产中也可以正常工作。 环境较大的问题 ☑某种数据库。 ☑作业处理池 – 用于一些长时间运行的后台任务。 ☑用户帐户pipe理 – 也被其他系统使用。 ☑集中logging – 理智。 ☑转发代理 – 在同一url但不同path下绑定各个http可访问的服务。 ☐可能的其他服务或服务集合。 解决scheme? 所有在我自己的机器上? 在地狱里没有办法。 所有在虚拟机上? 也许,但是安全方面,如果这个设置应该反映prod.env。和prod.env。 就是这样,好吧..如果违反,这可能不是一个好主意。 除以责任,并在多个虚拟机上设置它们? 谁来pipe理所有这些机器? 我认为可以做得比这更好。 使用像Docker这样的容器,或者自己一起打巴掌? 听起来不错:(可能:)非常快的迭代周期,关注点分离,一些分离的安全性,以及容易的重现性。 为了简单起见,假设我们select的集装箱化工具是Docker,而且我们不打算使用libvirt / lxc工具/直接内核调用来构build自己的工具。 所以Docker可能是CoreOS或者Project Atomic。 所以现在有一个应用程序(或多个应用程序)的容器已经与系统的其他部分分离,并且可以在任何地方几乎相同。 解决scheme1:生产环境漂亮,优雅。 问题1:这不是开发环境。 开发环境 不pipe怎样select不把生产环境洒到我自己的机器上,问题依旧: 即使生产环境设置正确,我也必须在某处进行编译和testing,然后才能部署(通过CI或其他方式进行另一轮testing)。 我如何解决这个问题? 实际上,解决这个问题的正确方法是通过在自己的机器上编写代码,使其在虚拟镜像生产环境中同步/直接可见,从而自动运行testing? 当我不想运行所有的testing时,会发生什么情况,但是现在只有我正在编写的部分呢? 每次都要编辑自动编译过程吗? 怎么样远程debugging,因为多个系统必须编排以正确的方式运行,debugging必须附加到其中一个程序之间。 更不要说“ 代码,testing ”周期的速度,这将是非常缓慢的。 这听起来像CI这样的helluvalot,但是多个开发人员不能全部使用相同的CI并修改它,所以他们可能必须在自己的机器上进行此设置。 我也在想,开发者可以使用一个完全虚拟化的操作系统,它包含了所有的开发工具,并且在生产环境中是镜像的,但是这会迫使老用户采用虚拟开发环境的工具,听起来这个好主意。

Docker容器无法使用主机名访问另一个容器

我有2个容器: docker run -d -p 9000:9000 –name="my-php" php-fpm:5.4 docker run -d –name="nginx" -p 80:80 -link my-php:web nginx 两个都运行得很好。 在nginx容器内,我可以使用该应用程序 curl http://myapp.dev 也来自主机。 我想要做的是相同的curl请求,但从我的PHP容器使用相同的“myapp.dev”主机名,howerver … curl:(7)无法连接到myapp.dev端口80:连接被拒绝 我可以使用容器的ip,但它不适合我。 即使我无法使用curl,我仍然可以ping其他容器,没有任何问题。 在nginx容器上: root@6252bfe9d545:/# env WEB_PORT_9000_TCP_PROTO=tcp HOSTNAME=6252bfe9d545 WEB_PORT_9000_TCP_ADDR=172.17.0.24 WEB_PORT_9000_TCP_PORT=9000 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ NGINX_VERSION=1.7.9-1~wheezy SHLVL=1 HOME=/root WEB_NAME=/nginx/web WEB_PORT_9000_TCP=tcp://172.17.0.24:9000 WEB_PORT=tcp://172.17.0.24:9000 _=/usr/bin/env root@6252bfe9d545:/# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric […]

lxc-kill:无法获得init的pid

我有一个问题,似乎容器已经停止。 因为我ping的容器的IP,并没有得到答案。 lxc-info表示进程是STOP [root@matrix-node04 mnt]# lxc-info -n f3a939113d6e12450829a2dc76be3c761b818e63fbd33df513772e6e4485565e state: STOPPED pid: -1 但dockerps指示进程仍在运行 [root@matrix-node04 mnt]# docker ps | grep f3a939113d6e f3a939113d6e c69436ea2169 /bin/sh -c '/usr/loc 4 weeks ago Up 2 weeks d-mcl-354_lisx_test_kr22-n-3 我可以使用lxc-start来手动启动容器吗? 我试了下面的cmd [root@matrix-node04 mnt]# lxc-start -n f3a939113d6e12450829a2dc76be3c761b818e63fbd33df513772e6e4485565e -f /srv/docker/containers/f3a939113d6e12450829a2dc76be3c761b818e63fbd33df513772e6e4485565e/config.lxc lxc-start: No such file or directory – failed to get real path for '/srv/docker/devicemapper/mnt/f3a939113d6e12450829a2dc76be3c761b818e63fbd33df513772e6e4485565e/rootfs' […]

在Docker容器中运行lxd,并有probelms

我正在使用Ubuntu 16.10.3映像来探索Juju的魅力。 作为一个先决条件, juju需要安装lxd 。 我成功地安装了lxd但是当我继续创build我的第一个Juju魅力时,它失败,出现这个错误: root@615c0e53c7f7:/# juju bootstrap localhost test ERROR creating LXD client: can't connect to the local LXD server: LXD socket not found; is LXD installed & running? Please install LXD by running: $ sudo apt-get install lxd and then configure it with: $ newgrp lxd $ lxd init 由于lxd已经安装了,所以我继续运行lxd init ,这个错误再次失败: […]

我怎样才能挂载/ dev / shm在docker集装箱

我创build了一个Docker容器,但现在我需要/dev/shm作为安装在容器内的tmpfs 。 如果我手动更改Docker文件夹中的config.lxc文件并取消挂载/dev/shm行,Docker似乎挂起。 此外,该文件不时重新创build。 我需要知道在哪里可以更改创buildlxcconfiguration的Dockerconfiguration文件。

不能在守护进程模式下运行docker?

docker文档说我们可以通过标志-d运行docker守护进程模式。但是,我试图在ubuntu以这种方式运行,失败了,进程没有成为守护进程,请参阅ps aux | fgrep docker ps aux | fgrep docker结果,有什么问题? root 10250 10245 6 08:39 pts/0 00:00:00 /usr/bin/docker -d -H unix:///var/run/docker.sock -H tcp://127.0.0.1:10001

在lxc / docker容器中 – 如果apt-get升级包含内核更新会发生什么情况?

我正在阅读很多Docker指南,其中经常会使用一些Ubuntu基本映像,并直接在Dockerfile中或在一个bash脚本中获取副本到容器并开始运行,它具有诸如“apt-get upgrade” 据我了解,容器仍然使用主机内核。 那么当apt-get升级包含内核升级时会发生什么? 它是否创build一个/启动并像往常一样安装文件,但底层的LXC有一些传递/白名单机制,总是来自主机的特定目录…所以它忽略了客人容器中的这些文件? 感谢fLo

无法设置LVM时的快照选项

我正在寻找一些方法来简化封装我的“部署”的方式,使我可以拍摄快照 主机之间的转移 能够恢复到以前的时间点(快照) 我主要使用VPS提供程序(Xen / KVM),我无法控制在文件系统上设置LVM。 目前我正在使用Docker(环绕LXC)来快速轻松地部署我的应用程序,但是我通常将“状态”信息挂载到虚拟机文件系统而不是容器中。 这样,如果服务器崩溃/重新启动,我不会失去任何东西。 然后,只要我想移动,就必须手动抓取/打包这些信息,并且没有时间点恢复的选项,比如使用LVM。 将状态移动到容器中是很诱人的,这样我就可以在时间点“提交”容器,然后我可以通过简单的保存/传送/加载容器来移动主机。 这也允许通过使用docker run在从提交生成的图像上恢复到某个时间点,然而这有点危险,感觉像是“不好的做法”。 我被告知不要让我的容器“有自己的生命”。 有没有人知道替代品,比如虚拟文件系统,或者是一种“安全”的方式,将状态留在docker集装箱内。