Docker容器(基本上是应用程序隔离,afaik)看起来很方便,但它们只适用于Linux。 即使“Windows的Docker容器”基本上只是在Windows上安装一个Linux虚拟机到VirtualBox。 那么是否有像Docker技术那样的Docker容器?
我在理解如何利用Docker的现有基础架构代码方面遇到了一些困难。 我有一个使用capistrano推出部署的Ruby on Rails应用程序。 我想用这个capistrano脚本创build一个新的docker图像。 我可以推出一个部署,然后使用部署到目录部署在现有的图像之上,说,精确(因为匹配我的目标操作系统)。 这是正确的方法,还是我错过了什么?
以下BASH脚本在Docker容器中下载并构buildmpv ( https://github.com/mpv-player/mpv-build ),并使用netcat将该文件发送到主机(主机使用netcat进行侦听): HOSTIP="192.168.1.100" PORT="62514" nc -v -l $PORT > mpv & sleep 1 sudo docker run ubuntu:14.04 /bin/bash -c "\ sed -i -e 's/# deb/deb/g' /etc/apt/sources.list; \ cat /etc/apt/sources.list; \ apt-get update; \ apt-get install –yes –force-yes git python-minimal; \ git clone https://github.com/mpv-player/mpv-build.git; \ cd mpv-build/; \ ./update; \ apt-get install –yes –force-yes […]
我们有一个Jenkins CI服务器,它从Git获取我们的代码,构build它,制作一个Docker镜像,然后将它发送到一些生产服务器。 我们的项目主要是用Python编写的,所以“构build”涉及到运行 pip install -r requirements.txt 这工作正常,除了它是一种缓慢。 它必须通过networking获取软件包,另外还需要为其中的一部分构buildC库(“lxml”不小!)。 在开发过程中,我使用了pip-accel来加速这个过程。 它具有与pip相同的接口,但它同时caching了Python下载和构build的C代码 pip-accel install -r requirements.txt 很快。 我想为我们的生产build立这样做,但我遇到了一些障碍。 显然, pip-accel需要一个目录来存储caching。 由于我们的CI服务器是运行构build的,所以这是合理的地方。 但是pip install命令在一个新的Docker容器中运行,所以它不能访问该服务器上的公共目录。 Docker的“卷”看起来就像是devise用于与容器共享目录,但是我们的构build在Docker构build中发生(惊喜),只有docker run允许你附加卷。 您不能使用docker build连接卷。 有什么我失踪? 我如何运行一个docker build和我的主机共享一个caching文件夹,在我的容器之外?
我很好奇,如果有人真的在生产容器中运行PostgreSQL的某种forms的分布式文件系统 – GlusterFS最好,或任何东西。 我目前正在运行Mesos / Marathon。 如果PostgreSQL节点出现故障,Marathon只会在其他节点上启动另一个PostgreSQL实例,如果正确完成(服务发现和应用程序从数据库连接丢失中恢复),则将实现最终容错。 我知道PostgreSQL有自己的HA解决scheme,比如日志传送和热备份备份,但是还是需要解决什么时候从主机切换到从机,如何正确执行等问题。 那么,如何在GlusterFS或类似的产品上运行PostgreSQL呢? 如果是这样,它是稳定的吗? 性能如何?
我有以下设置: 运行docker服务的CentOS主机 用户定义的docker桥networking 2个连接到该用户定义桥networking的Docker容器 安装OpenVPN(当前在主机上运行,也可以在Docker容器中运行) 一些客户端连接到OpenVPN 如何允许docker bridgenetworking上的docker容器与tun0networking上的openvpn客户端进行通信? 我希望能够以透明方式在docker1(10.10.0.3)和连接到vpn(172.19.0.x范围)的客户端之间进行基于tcp的通信。 我需要在docker(networking / iptables / …)端和主机上设置什么(iptables?)
我使用的是Docker ,我正在运行一个Jenkins图像。 我想要的图像: https : //github.com/orchardup/docker-jenkins 我需要生成一个SSH密钥对,所以我可以用它来authenticationbitbucket。 这是让jenkins可以拉我的源代码,并build立它。 通常我会su到jenkins用户并运行ssh-keygen来实现这一点。 我编辑了运行文件: su jenkins 这使我能够访问我可以运行ssh-keygen的shell来将ssh密钥安装到~/.ssh下的jenkins用户主目录中。 在此之后,我退出并继续Dockerfile。 这个主目录是/var/lib/jenkins ,它也作为一个卷装载在主机服务器上。 问题是ssh键出现在这里,但他们不工作。 任何想法如何实现这个更好的方式? 谢谢
运行基于特定操作系统的Docker容器在相同的操作系统types和版本上是否有显着的提升? 例如,在Debian / CentOS / CoreOS服务器上运行一个基于某个版本的Ubuntu,Ubuntu服务器(相同版本)的容器? 尽pipe如此,升级服务器和容器的操作系统并不是一成不变的。
对于AWS ECS的Docker Hub镜像,我无法完全理解镜像[registry-url]/[namespace]/[image]:[tag] URL。 对于Docker客户端来说,只是docker run -it hendry/count 。 那么Docker Hub的图像URL是什么?
所以我的最终目标是运行一个MySQL Docker容器(比如公共registry中的tutum / mysql),然后将一个Gitlab Docker容器(比如sameersbn / gitlab)连接到两个容器都使用持久存储的容器。 但是,我被困在MySQL部分。 每当我尝试运行一个预制的MySQL Docker容器(mysql,tutum / mysql和sameersbn / mysql)时,我会得到下面的输出结果。 脚步 这只是获取下面的错误消息的一种方法。 docker.io拉tutum / mysql:最新 docker.io运行-it tutum / mysql bash 一旦连接到新的容器,运行“/run.sh”(根据tutum / mysql dockerfile) 此时“等待MySQL服务启动确认”消息不断重复。 此时,如果我取消“/run.sh”命令并自己启动MySQL,则会在下面显示错误消息。 输出: root @ 1bbeb34f3491:/#mysqld 140730 4:49:04 [警告]使用唯一的选项前缀key_buffer而不是key_buffer_size已被弃用,并将在未来版本中删除。 请改用全名。 140730 4:49:04 [警告]使用唯一的选项前缀myisam -recovery而不是myisam-recover-options已被弃用,并将在未来版本中删除。 请改用全名。 140730 4:49:04 [Note]插件'FEDERATED'被禁用。 mysqld:表'mysql.plugin'不存在 140730 4:49:04 [错误]无法打开mysql.plugin表。 请运行mysql_upgrade来创build它。 140730 4:49:04 InnoDB:InnoDB内存堆被禁用 140730 […]