Tag: 虚拟机

Dockerize应用程序或机器?

我很抱歉,如果我的问题太基本了,但是我刚刚开始学习docker,并且有一些概念对我来说是不清楚的。 我认为docker是一个function齐全的虚拟机,因此我想将一个服务器转换成一个容器。 然后我开始阅读“dockerizing”应用程序(例如postgresql ),并且我知道Docker文件在执行容器时只能有一个默认指令 。 我读过可以使用一个主pipe协调多个执行指令,但是我开始想知道这是否是最好的方法,还是倾向于微服务架构 ? 为了更好地说明我的观点,我想描述一下我的用例。 我想创build一个提供tomcat(通过servlet部署的服务)和postgreSQL数据库的环境。 理想情况下,我希望服务(和数据库)在相同的主机(在不同的端口上)运行。 为Tomcat创build一个容器,为数据库创build一个容器是最佳做法,还是将它们放在同一个容器中更好? 如果我创build两个不同的容器,我应该使用哪个框架来编排它们? 这个任务是Docker组合吗?

如何并行运行一个Web项目的分支机构?

我想在单独的虚拟主机/域中运行/托pipe项目的Git存储库的特定分支,以进行testing/预览。 我正在考虑在Git推送之后,将一个分支部署到“预览”或“testing”服务器以在浏览器中进行手动testing的过程。 例如,将一个名为“feature / my-new-feature”的分支部署到特定的服务器并使项目像“my-new feature.project.com”这样的URL可访问将是很好的。 我面临的问题(理论上来说,首先)主要是数据库连接/configuration,端口等方面的挑战。例如,如果在单个服务器上有多个分支运行在不同的子域上,则需要共享一个MySQL安装 – 但实际上每个分支都需要它自己的,独立的MySQL实例,因为数据库的configuration对于所有的分支都不会改变,这意味着它们连接到同一个主机并使用相同的数据库名称,用户等。 一种方法可能是为自己的子域中的每个分支运行一个虚拟机,将这些端口直接映射到虚拟机(至less我认为这是可能的),但是对于许多分支的项目,这意味着我需要大量的硬件处理这个问题的权力。 (也可能是很多钱。) 然后,我听说Docker和/或Linux容器,也许这可能会奏效,但我不完全确定如何,如果它工作。 我想知道在没有干扰服务和相关冲突问题的情况下,并行运行多版本项目的既定方法是什么。 是否有可能使用泊坞窗这样的设置,或者这是我走的完全错误的方向? 非常感谢你的服务员。

不能托pipe多个networking服务器吗?

读这个我得到一个Docker容器不能得到一个DHCP地址或获得一个DNS名称的印象。 题 这是否意味着我不能托pipe两个或更多的networking服务器,都需要听80端口? 甚至一个域名的networking服务器?

Docker引擎如何replacepipe理程序和来宾操作系统?

左边是我从这个video中得到的虚拟机和丰富的Docker: Docker引擎如何能够轻量级地取代客户操作系统和虚拟机pipe理程序,并仍能与主机操作系统一起工作? 从本质上讲,它只是比不同的虚拟机更有效地翻译不同的应用程序及其依赖项? 我听说Docker引擎使用与主机操作系统相同的内核,但我不确定我明白这是什么意思。 本质上,我们用一个Docker引擎replace了多个来宾操作系统和一个虚拟机pipe理程序的所有依赖关系,但我不明白这是如何实现的。 一个Docker引擎是否只删除了Guest OS所不应该拥有的那么多的无关内容? 什么是无关紧要的东西?

pipe理程序没有运行?

我有两个部分的问题: 首先是任何人都可以告诉我的命令行在docker执行,开始build立一个容器和虚拟机? 第二个是我已经用dockerbuild了一个虚拟机,但是问题是每当虚拟机的编译到达写入的阶段WAITING FOR VM TO BOOT ,它WAITING FOR VM TO BOOT留在那里,即使HYPER-V MACHINE MANAGEMENT HYPERVISOR IS NOT RUNNING出现HYPERVISOR IS NOT RUNNING错误是自动运行的。 所以,请帮助我摆脱这个问题。

Windows上的Boot2docker得到“权限被拒绝”的错误

我从https://github.com/boot2docker/windows-installer/releases下载并安装了docker-install v1.1.2。 但是我不能启动它,不断得到“权限被拒绝”的错误: C:\apps\Boot2Docker>bash luog@IKARI:/c/apps/Boot2Docker$ ./start.sh initializing… ./start.sh: line 21: ./boot2docker.exe: Permission denied starting… ./start.sh: line 23: ./boot2docker.exe: Permission denied connecting… ./start.sh: line 25: ./boot2docker.exe: Permission denied 如果我直接从cmd控制台运行boot2docker,我得到这个: C:\apps\Boot2Docker>boot2docker.exe Access is denied. 任何想法? 注意我用pipe理员angular色打开了cmd,仍然没有帮助 从浏览器中双击“start.sh”时的截图:

在虚拟服务器上运行docker-可能与否?

我试图在我的vServer上运行/安装docker,如果甚至可能找不到信息..我现在试过CentOS(6&7),Ubuntu,Debian和Fedora,我只是无法获得docker守护进程跑步。 docker.service – Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled) Active: failed (Result: exit-code) since So 2015-04-05 17:12:23 EDT; 16s ago Docs: http://docs.docker.com Process: 956 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $INSECURE_REGISTRY (code=exited, status=1/FAILURE) Main PID: 956 (code=exited, status=1/FAILURE) Apr 05 17:12:23 vvs.valentinsavenko.com systemd[1]: Starting Docker Applicati… Apr 05 17:12:23 vvs.valentinsavenko.com docker[956]: time="2015-04-05T17:12:2… Apr 05 […]

制作多个boot2docker虚拟机

我正在使用boot2docker作为虚拟机的映像(我正在运行Windows 7,64位),但我希望能够使用相同的映像创build另一个虚拟机。 如果我在VirtualBox应用程序中尝试New ,我有Ubuntu,Windows等通常的select,但不是boot2docker映像。 或者,如果我只是使用Boot2Docker快捷方式/ shell脚本,它会自动连接到已经存在的虚拟机,并不会给我一个新的select。 所以我的问题是,如何使用boot2docker映像创build另一个虚拟机?

使用相同的数据/源代码同步多个服务器和本地计算机

背景: build立一个由2名开发人员组成的Web应用程序。 RESTful后端通过Flask。 使用Linux,Apache,Redis和Postgres。 3台服务器: 1用于生产 1发展 1为UAT 4个数据库: 1用于PROD / UAT服务器 1用于DEV服务器 1在他本地机器上的开发者A. 1为他的本地机器上的开发者B. 2本地机器/开发人员 除了4个数据库之外,每个开发者都有一个额外的数据库用于testing。 这个testing数据库在两个开发人员之间必须始终保持一致。 开发人员B拥有自己的数据分支,向开发人员A开发的主数据库发送请求。 问题: 我们没有真正的协议来轻松地在每个数据库之间传输数据。 例如,开发人员testing数据库往往是不同的,这会导致混乱。 将数据从DEV移动到UAT / PROD是手动完成的。 开发人员在不同的环境和不同的分支上工作。 我们在github中使用pull请求将代码转移到开发者A的主要回购。 题 你推荐什么样的解决scheme来解决我们的数据库问题? 有没有更好的方式来分享数据? 开发者A和开发者B是否有更好的方式来共享他们的环境和源代码?

如何编写一个unit testing来检查在瞬态系统资源约束条件下的正确行为?

我有一个Python 3应用程序,它使用多处理模块并行地在许多CPU上分布大量的资源密集型科学计算。 计算中有几个步骤要求进程分配适度大的数组。 当我在OS X笔记本电脑上运行该应用程序时,该应用程序运行良好,但长期计划是,它通常会从Docker容器中运行,然后运行在Amazon Web Services EC2实例或其他类似云的虚拟机 – 将应用程序embedded到两个级别的机器虚拟化技术中。 我预计未来,其他一些用户可能会尝试运行带有虚拟机资源(内存,交换空间等)的应用程序,该资源被configuration为设置的值太小,太小。 (有明确的财务激励措施可以做到这一点,因为您对云计算服务的支付往往较less,所用的资源也较less。) 这就提出了在严格限制资源的情况下,当一个足够大的内存块暂时不可用时,其中一个进程可能会尝试为数组分配内存,从而触发Python MemoryErrorexception。 这个问题的解决scheme可能看起来像下面的代码片段:尝试分配内存,如果发生exception,请稍等片刻,然后再试一次: import numpy as np import time import datetime import os from warnings import warn def getHugeArray(n, retry=1, warnuser=5): # Don't retry too often if retry < 0.1: retry = 1 # Don't send a useless flood of warning messages if […]