编辑+ 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 containerID
或docker run -t -i img /bin/sh
要做的容器,它会把我变成一个互动的外壳,使容器的变化有。不过,我想知道是否有一种方法可以使Docker与容器内的本地环境交流。
你如何运行'yum remove'命令? – jwodder
yum删除epel-release.noarch。考虑到我是根,我不应该添加任何其他东西......我昨天也学到了,通过使用命令docker run -t -i image/bin/sh访问它,我可以查看容器的工作。从那里我可以进一步修改容器内的构建。虽然这很好,但我仍然想知道Docker应用程序如何与本地环境交互,而不是在沙箱中。 – Jouster500
问自己这个问题引发的“新”问题; “哇,这些码头图片肯定是巨大的,我希望有一种方法可以构建一个不需要非法文件的图像。” “哦,嘿,码头文件可以从零开始构建,这是一张空的图像。” “Darn,我不能运行我想要处理我移动到映像中的包的命令,我希望有一些docker文件可以将这些依赖关系传回到它自己的构建过程中。” – Jouster500