Tag: lxc

Lite虚拟化进程

我试图找出(如果可能的话)如何在绝缘环境(内存,networking和其他资源)中运行用户进程。 假设程序x存储在host machine (h)的文件系统中。 我想在绝缘的hosted context (c)执行x (换句话说,不需要创build虚拟托pipe的操作系统)。 该过程将输出文件阐述为上下文c 。 然后我想用这些文件进入上下文。 我听说过LXC,docker工人,dockerlite,openvz等,但似乎必须从操作系统映像创build一个容器 。 所以,不久之后,有没有办法将x运行到c并将结果(如果有的话)转换为h ?

将Docker容器公开到公有IP

我启动了一个Ubuntu Docker容器,安装了ssh,运行带有端口22的ssh。 $ docker ps CONTAINER ID IMAGE COMMAND PORTS f580e36aa7f0 martin/ssh2 /usr/sbin/sshd -D 0.0.0.0:49154->22/tcp 从我的服务器,我现在可以ssh我的容器。 它工作正常! ssh root@172.17.42.1 -p 49154 但是我怎样才能从外面的单词ssh我的容器? (我的服务器正在192.168.1.8/24的本地networking中运行) 我应该安装一个将192.168.1.8:2222redirect到172.17.42.1:49154的负载均衡器吗? 我应该需要pipe道吗? 怎么样? 有人能指出我做出正确的决定吗?

在docker集装箱内,我们可以得到主机IP和分配的随机端口

在docker集装箱内,我们可以得到主机IP和分配给暴露端口的随机端口。 用例是发送一个serf事件来join具有由docker守护进程分配的主机ip和随机端口的集群,以便负载均衡器可以自行更新。 我喜欢从这个容器内发送这个事件,而不依赖主机

Docker中的不同内核中编译代码会受到什么影响?

我可以相信在Ubuntu 14.04主机的c / c ++源代码的docker容器中的redhat6.4版本吗? 或者我需要考虑的任何限制? 我们正在尝试使用docker来为不同的OS平台编译源代码,因为docker中的技术是共享主机os的内核,请参阅相关问题docker主机操作系统和容器基础映像操作系统之间的关系是什么? 我的主机操作系统是Ubuntu 14.04(易于安装3.13.0-24-generic ),内核是3.13.0-24-generic 我的应用程序平台是redhat 6.4(内核是2.6.32-358.el6.x86_64 ) 当我为Ubuntu创buildRHEL容器时,内核也更新为3.13.0-24-generic 。 我的应用程序是基于C / C ++和Java的。 我不认为java会编译.jar文件的任何问题,因为它是基于jvm。 而对于c / c ++代码,大部分我都明白它依赖于libc类的共享库,不依赖于内核,所以有可能将这个编译好的代码用到真正的redhat环境中。 此设置仅用于开发,不用于生产,生成的二进制文件应该安装在具有RHEL或VM的真正的独立计算机上。 那么我需要考虑什么呢? 可能是更多lxc相关的问题。 更新后添加一些示例 我下载了gameoflife代码https://github.com/rvsjoen/game-of-life ,并在两个系统中编译,因为md5是一样的,结果是一样的,可信。 这是VM中的redhat 6.4系统 [root@redhat game-of-life-master]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4 (Santiago) [root@redhat game-of-life-master]# uname -a Linux redhat 2.6.32-358.el6.x86_64 #1 SMP Tue Jan […]

Docker与VM和LXC的关系

我对 Linux容器(LXC)的理解是,它提供了一个适用于Linux系统的原生虚拟机pipe理程序,类似于Windows 8中引入的Windows Hyper-V。我的意思是,Linux系统能够托pipe访客虚拟机它内部不需要安装任何一种专门的虚拟化软件。 我对 Docker的理解是它以某种方式build立在LXC之上,并允许应用程序开发人员定义: 包括操作系统,操作系统的确切configuration和调整以及安装/configuration/部署到该操作系统的任何工具或应用程序的VM /节点的确切应用程序堆栈; 和 运行此虚拟机/节点的确切资源要求,包括CPU要求,内存/磁盘/networking要求,负载平衡和复制要求等。然后,Docker使用这些声明的要求作为基准来计算运行容器的节点。 所以首先,如果我对LXC或Docker的理解是误导性的, 请首先纠正我! 假设我的理解或多或less是正确的,我会问: Docker和vmWare或Xen VM之间有什么关系? Docker是否位于虚拟化层的顶端? 换句话说,对于不同的虚拟化平台(vmWare,Xen,kvm等)是否存在“Docker绑定”,我可以将一个Docker容器用于myapp并将其部署到任何Docker-ified平台上? LXC和Docker有什么关系? Docker只是简单地扩展LXC,还是完全类似(但完全分离)的概念? 如果它的LXC的延伸,那么以什么方式?

主机卷中的符号链接如何在Docker容器中工作?

我的问题是关于从主机挂载的目录中的容器内创build符号链接时会发生什么。 如果我只是问一个例子,这是最简单的。 假设我们像这样开始一个容器。 大部分命令并不重要,这里重要的是主机卷装载。 docker run –rm -ti -h thecontainer -v /home/userguy:/container-home alpine /bin/sh 在容器中,我在主机卷目录中创build一个符号链接 thecontainer$ ln -s /tmp /container-home/tmp-link 在容器中,我可以ls /container-home/tmp-link并根据预期查看容器的/tmp的内容。 现在,如果我回到我的主机,我看到/home/userguy/tmp-link -> /tmp 。 如果我在那个目录下看到主机的 /tmp的内容。 即不同的结果。 我的问题是,主机卷如何在允许这种情况发挥作用的封面下工作? 这是Docker还是lxc本身的产品? 我很惊讶地看到这个工作,因为思想符号链接指向inode,容器中的/ tmp将与主机上的/ tmp不同。

在不同的环境下运行docker-build不一致

本地一切运行平稳完美: Mac OS 10.11.6 Docker 17.03.1-ce-mac12 在CircleCI上,远程的情况有所不同: Ubuntu 14.04 Docker版本1.9.1-circleci-cp-workaround 我正在使用CircleCI 1.0,我简单地尝试过使用CircleCI 2.0 我的Dockerfile看起来非常相似: FROM pensiero/apache-php # Mostly Ubuntu 16.04 install with some php and node / npm # RUN apt-get install a few packages COPY . /var/www WORKDIR /var/www RUN ["npm","install"] # or RUN npm install 然后,混乱被释放,所有的幸福消失: npm WARN deprecated bower@1.8.0: ..psst! While Bower […]

LXC / docker.io和内核更新

Linux容器使用其主机系统的内核。 主机系统内核重大升级后,如何确保容器正常?

Dockerfile:无法使用添加将本地文件映射到容器

我正在尝试构build一个ejabberd容器,并在创build容器时从我的构build目录中添加2个文件。 add ./scripts/ /src 但是,我不断收到错误: ./scripts folder does not exist 我是新来的docker工,希望得到一些帮助。 谢谢,奥雅纳

Docker使用LXC与直接主机联网

随着Docker 0.11的发布,通过在运行容器时指定–net=host ,可以直接使用主机的networking。 这允许我绑定到主机的IP地址,这使得与consul等使用服务发现 。但是,如果我有docker设置为使用LXC作为容器引擎,除了回环地址我没有看到任何接口。 我非常喜欢继续使用LXC,因为它使我能够轻松地连接到正在运行的容器并进行debugging。 有谁知道如何configurationdocker+ LXC,所以我可以有直接的主机networking?