当我在Kubernetes中使用Deployment时,apps / v1beta1和extensions / v1beta1有什么区别?

我使用Kubernetes官方文档中的yaml文件在Kubernetes中创build一个Deployment,并在顶部使用apiVersion: apps/v1beta1 。 然后我inputkubectl create -f deployment.yaml来创build这个Deployment,但是发生如下错误: 错误:错误validation“deployment.yaml”:错误validation数据:无法findtypes:v1beta1.Deployment; 如果您select忽略这些错误,请使用–validate = falseclosuresvalidation 经过一番search之后,我将apiVersion: apps/v1beta1为extensions/v1beta1 ,然后用yaml文件重新创buildDeployment,并且它工作正常。 所以,我想知道apps/v1beta1和extensions/v1beta1之间有什么区别。 这与Kubernetes版本有关吗? #kubectl版本 客户端版本:version.Info {Major:“1”,Minor:“5”,GitVersion:“v1.5.4”,GitCommit:“7243c69eb523aa4377bce883e7c0dd76b84709a1”,GitTreeState:“clean”,BuildDate:“2017-03-07T23:53: 09Z“,GoVersion:”go1.7.4“,编译器:”gc“,平台:”linux / amd64“} GitTreeState:“clean”,BuildDate:“2017-03-07T23:34: 32Z“,GoVersion:”go1.7.4“,编译器:”gc“,平台:”linux / amd64“}

Dockerfile或registry? 哪个是分配的首选策略?

如果您正在使用Dockerfile进行服务,那么您最好使用Dockerfile构build映像并将其推送到registry – 而不是分发Dockerfile(和回购)以供人们构build其图像? 哪些用例支持Dockerfile + repo分发,哪些用例支持Registry分发?

我如何在Dockerfile中声明多个维护者?

我怎样才能最好地表明有多个作者/维护者使用Dockerfile构build的Dockerfile ? 如果我包含多个单独的MAINTAINER命令,则只有最后一个似乎生效。 MAINTAINER Me Myself "myself@example.com" MAINTAINER My Colleague "mycolleague@example.com" 只有mycolleague出现在mycolleague docker inspect的输出中。 我应该在单个MAINTAINER行中使用逗号分隔列表吗? 是想列出两个维护者boondoggle,我应该武装我的同事,看看我们把电子邮件放在文件?

为什么Docker Hub在构build映像时caching自动构build存储库?

Docker Hub的自动化版本库似乎不caching图像。 当它正在build设,它将删除所有中间容器。 这是它打算工作的方式还是我做错了什么? 没有必要为每一个小的改变重build所有的东西真的很好。 我认为这应该是docker工人的最佳优势之一,他们的build设者不使用它似乎很奇怪。 那为什么不caching图像? 更新:我已经开始使用Codeship来构build我的应用程序,然后在我的DigitalOcean服务器上运行远程命令来复制构build的文件并运行docker build命令。 我仍然不确定为什么Docker Hub不caching。

Docker多应用程序服务器关于数据库的体系结构

我有一个运行5或6个小Rails应用程序的服务器。 他们所有的附加文件都在S3上,他们都使用MySQL作为数据库。 每个应用程序都有自己的用户,并运行一些thins。 有一个nginx服务器负责平衡和域路由。 我打算用一个Docker安装来replace这个服务器:一个服务器每个应用都有一个容器,前面有一个nginx。 我的问题是:你会把数据库的一部分? 我主要看到4种可能性: 1)每个应用程序容器中的一个Mysql服务器。 我认为这不是Docker的哲学。 这将要求每个容器的数据单独备份。 2)适用于所有应用程序的独特的MySQL容器。 3)主机Docker服务器上的标准MySQL安装。 4)一个单独的MySQL服务器的所有应用程序。 你会怎么做 ? PS:我知道Docker还没有准备好,我打算现在用它来升级,如果我对它满意的话,也可以切换。

Docker RUN命令:何时组命令,什么时候不?

我已经看到在Dockerfile中使用RUN命令的两种截然不同的方法,我将命名为v1和v2。 V1 每行一个命令 FROM ubuntu/latest ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get -y install php5-dev RUN libcurl4-openssl-dev … V2 每行多个命令 FROM ubuntu/latest ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ apt-get -y install \ php5-dev \ libcurl4-openssl-dev … 两种方法都有其优点,使用caching的方法是最明显的。 还有什么其他原因可以使用另一种方法呢? 如果这个问题被认为太模糊或有意见,我会鞠躬社会的意愿; 不过,我把它张贴在这里,因为我认为有好的情况下组合命令,好的情况下不 – 我想知道他们是什么。

Docker apt-get更新失败

有人可以帮我搞定在我的docker集装箱工作吗? 每当我尝试运行我的docker容器中的任何apt-get命令,命令失败。 我正在运行Docker版本1.1.1,在Ubuntu 12.04上构buildbd609d2。 当我做 $ sudo docker run -i -t ubuntu:14.04 /bin/bash # apt-get update 我得到错误说 无法parsing“archive.ubuntu.com” 我尝试在/ etc / default / docker中取消注释下面的行 DOCKER_OPTS =“ – dns 8.8.8.8 –dns 8.8.4.4” 但我仍然无法ping通google.com ping:未知的主机 我确认容器正在使用dns服务器8.8.8.8和8.8.4.4 root @ 0baa87fc6322:/#cat /etc/resolv.conf 名称服务器8.8.8.8 域名服务器8.8.4.4 而且我可以ping通两台服务器,所以我确信防火墙不仅仅是丢弃数据包。 任何帮助,将不胜感激! 谢谢!

有可能在Docker容器中运行virtualbox

我试着在特权模式下运行容器,但仍然无法加载vboxdrv。 我明白了 WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (3.11.0-22-generic) or it failed to load. Please recompile the kernel module and install it by sudo /etc/init.d/vboxdrv setup You will not be able to start VMs until this problem is fixed.

如何通过名称而不是IP地址到达docker集装箱?

有没有一种方法,我可以达到我的docker容器使用名称,而不是IP地址? 我听说过pipe道工,我也看到了一些docker工人的DNS和主机名types选项,但是我仍然无法将所有东西拼凑在一起。 感谢您的时间。 我不确定这是否有帮助,但这是我迄今为止所做的: 使用docker-machine和vmwarevsphere驱动程序安装了Docker容器主机 用docker-compose启动了所有的服务 我可以使用IP和端口从networking上的任何其他机器获得所有的服务 我已经添加了一个DNS别名条目到我的专用networkingDNS服务器,它与docker-machine使用的计算机名称相匹配。 但是当机器启动并连接到networking时,机器总是select一个不同的IP地址。 我只是失去了在哪里解决这个问题: networkingDNS服务器 docker机主机名 docker容器主机名 可能是所有这些的组合 我可能正在寻找类似于这个问题的东西: 如何让docker使用我的networking路由器轻松地将dhcp ip分配给容器而不是pipe道? 任何大方向将是真棒…再次感谢!

在Docker中导入和加载有什么区别?

我了解export (对于容器)和save (对于图像)之间的区别。 但在一天结束时,保存或导出产生的压缩包应当用作图像 。 那么为什么有两个命令从tarball中创build一个映像?