2015-06-18 51 views
-4

编辑+ 2 =只是fyi,我是root用户,这意味着我没有输出超级用户做(sudo),每次我只做一个授权的cmd。如何部署Docker镜像以在本地环境中进行更改?

好吧,在经过大约24小时的Docker研究之后,如果我了解了我的事实,我有点不高兴。

作为一个快速回顾,docker可用作为特定Web服务,运行环境,虚拟机编写代码或配置文件更改的一种方式,所有这些都来自linux终端/文本文件的舒适范围。这无疑是一个了不起的功能:让您在一台计算机上制作的代码或版本可以在无限数量的其他机器上工作,这确实是一项突破。虽然我很烦恼术语在什么容器和图像方面是错误的(图像是由码头服务器制作的代码层保存点,或者可以从需要基础图像的容器创建)。Dockerfiles通过运行所有需要的图层并将它们滚动到一个图像中,以便轻松访问,从而实现图像构建过程的自动化。)。

查看docker的用法是“确保它可以部署在各种不同的操作系统上并使用它们各自的命令”。但是,这些命令并没有像本地环境那样传达。当运行在dockerbuild在CentOS工作的一些测试,基本的命令结构去

FROM centos 
RUN yum search epel 
RUN yum install -y epel-release.noarch 
RUN echo epel installed! 

所以此工程在泊坞窗构建中,并表示它成功地安装它。 通过运行apt-cache而不是yum,ubuntu可以这么说。但要回CentOS的VM,它不会因为试图运行的

yum remove epel-release.noarch 

它说:“没有软件包将被删除但有一个名为包的命令时指出EPEL已安装... ”。那么,如果docker能够成为多平台,为什么它不能在我们定位的本地平台/映像上实际创建这些更改?码头建设运行模拟将发生在特定的环境,但我似乎无法让它通过。如果它不能改变所使用的系统本地的任何东西,这只会破坏泊坞窗的预期目的之一,除非我错过了某些东西。

请让我知道,如果任何人有解决这个困境。

EDIT + 1 =行,所以我昨天想通了什么,我试图做的是查看和修改,可以通过做任何docker logs containerIDdocker run -t -i img /bin/sh要做的容器,它会把我变成一个互动的外壳,使容器的变化有。不过,我想知道是否有一种方法可以使Docker与容器内的本地环境交流。

+0

你如何运行'yum remove'命令? – jwodder

+0

yum删除epel-release.noarch。考虑到我是根,我不应该添加任何其他东西......我昨天也学到了,通过使用命令docker run -t -i image/bin/sh访问它,我可以查看容器的工作。从那里我可以进一步修改容器内的构建。虽然这很好,但我仍然想知道Docker应用程序如何与本地环境交互,而不是在沙箱中。 – Jouster500

+0

问自己这个问题引发的“新”问题; “哇,这些码头图片肯定是巨大的,我希望有一种方法可以构建一个不需要非法文件的图像。” “哦,嘿,码头文件可以从零开始构建,这是一张空的图像。” “Darn,我不能运行我想要处理我移动到映像中的包的命令,我希望有一些docker文件可以将这些依赖关系传回到它自己的构建过程中。” – Jouster500

回答

3

所以,我想你可能已经在很大程度上错过了Docker背后的观点,Docker是有意与当地环境隔离的容器管理。这个想法是,你创建集装箱化的应用程序,可以在任何Docker主机上运行,​​而无需担心安装的特定操作系统或主机的配置。

也就是说,如果这真的是你想要做的,有很多方法可以打破这种隔离。

如果您希望能够修改主机网络配置(包括接口地址,路由表,iptables规则等),您可以使用--net=host(也可能是--privileged)启动容器。

使用-v命令行选项,可以将部分(或全部)主机文件系统作为容器内的卷。例如,docker run -v /:/host ...会将容器中的主机文件系统的根作为/host公开。

通常,Docker容器有自己的PID名称空间,这意味着主机上的进程在容器内不可见。您可以使用--pid=host在主机PID名称空间中运行容器。

您可以结合这些不同的选项来提供与您需要完成特定任务所需的主机一样多或少的访问权限。

如果您要做的只是在主机上安装包,则容器可能是该作业的错误工具。

+0

对不起,我更新了这篇文章。在问题的新框架内,答案是无效的。 – Jouster500

+1

也许你应该发布一个新的问题? – larsks

+0

不,那是我书中的空间浪费。加上它仍然只是一个不同的用法。 – Jouster500

相关问题