问题标签 [boot2docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
217 浏览

docker - 用于构建映像的 boot2docker 工作流程

我正在使用 Windows 并试图找到从 Dockerfile 构建 Docker 映像的最有效过程(从人类的角度来看)。在 Windows 上使用 Docker 的记录方法是使用 boot2docker 在 VirtualBox VM 下有效地使用 Docker。似乎 boot2docker 只是启动该 VM 和 SSH 进入其中的一种便捷方式。

在我的 Docker VM 中,我找不到任何映射的目录。我没有找到从主机挂载目录的 boot2docker 选项。我在文档中唯一能找到的是关于使用 Samba为 Windows 主机安装 boot2docker 共享的部分。这是方便的倒退。

我的问题:在 Windows 下使用 Docker(特别是构建 Docker 映像)的规定工作流程是什么?

我一定遗漏了一些东西,因为目前我认为使用 boot2docker 没有任何好处。启动一个安装了 Docker 的 Vagrant 构建的虚拟机似乎要容易得多,我当前项目的目录已经映射到该虚拟机上。虽然这不允许在多个项目之间共享 VM,但它确实让事情变得更加方便。

我错过了什么?有没有更好的办法?

0 投票
1 回答
643 浏览

virtual-machine - Vagrant 和/或 Docker 工作流与完整的 OS X 文件系统集成以获得无缝的本地感觉?

最近我一直在涉足vagrantand docker。这些是非常有趣的工具,但我无法说服自己这是在我的 OS X 机器上要走的路。作为一个老 Unix 帽子,我不得不说我喜欢有一个统一的沙盒环境用于开发目的。

我看到了很多喋喋不休,许多朋友一直在使用vagrant股票vim进行编辑。我不太喜欢这种方法,可能更喜欢使用 vm 提供者的共享机制,或者更可能是 NFS。

就我个人而言,我希望能够直接在 TextMate、SublimeText、Emacs(在 OS X 上)中进行编辑,甚至可能使用 RubyMine 及其各种 IDE 功能等。

有什么方法可以真正降低工作流程,以便这样的环境本质上就像在本地环境中工作,而不必拉出大量额外的背景字符串来使事情顺利进行?

我想一些放置得当的脚本可能会有很长的路要走,但我还没有找到任何可靠的答案来真正使它成为一个无缝的环境。

0 投票
2 回答
471 浏览

docker - Docker data volumes and scaling in a distributed system

Docker data volumes is living within the host or boot2docker on the local VM(boot2docker).

Having big data from mongoDB running in a data container and mongoDB in another seems to be the way. Will this scale on Google Cloud Engine or Azure Virtuel Machines or other. I mean if all this is running within ONE Virtuel Machine, like boot2docker or other in the cloud. Normally you would scale VM's by creating new instances of VM's but how is this possible with Docker?

Sorry to ask this on StackExchange, but there is no category on dba - but StackExchange has a Category for Docker.

Thanks

Regards Christian

0 投票
1 回答
1578 浏览

virtualization - 将纯数据 docker 容器从一台机器移动到另一台机器的正确方法

我有一个数据库 docker 容器,它将其数据写入另一个纯数据容器。纯数据容器有一个存储数据库数据的卷。是否有一种“docker”方式将这个仅数据容器从一台机器迁移到另一台机器?我读到了 docker save 和 docker load 但这些命令保存和加载图像,而不是容器。我希望能够将 docker 容器与其卷一起打包并将其移动到另一台机器上。

0 投票
1 回答
452 浏览

docker - boot2docker 主机绑定挂载卷大小限制为 1.8 GB

我正在使用 boot2docker 上的卷容器来在 MacOS X 上运行 Docker。

我正在尝试执行Docker 文档中提到的备份/恢复过程。

我正在尝试备份超过 2 GB 的 MySQL 数据库。当我运行备份命令时:

...如果失败并出现此错误

似乎tar是磁盘空间不足。所以我进入我的容器并查看了主机绑定挂载,它的大小是 1.8 GB

可以看到/demo只有1.8G...

我不知道如何扩展这个大小,所以我可以做大备份......

任何的想法?谢谢!

0 投票
2 回答
270 浏览

vagrant - 用于开发的 Docker - 监视/自动构建?

我正在尝试从 Vagrant 迁移到 Docker,或 Vagrant+Docker。试图找出最好的解决方案......无论如何,这是我的开发工作流程。

  • 1)搭建vm环境
  • 2) 共享同步文件夹
  • 3) 开发
  • 4)直接在浏览器中测试

代码在 vm 中自动刷新,因此我可以在更改应用程序时检查它。


使用 Docker 似乎有点不同,因为build每次进行更改时都需要运行命令。

有什么方法build可以在检测到更改后立即运行?


对于使用 Docker 进行开发有什么建议吗?

0 投票
1 回答
671 浏览

database - Why is separating the data container fron the database container better than mounting the data volume from disk

So it is very common among the docker community to separate the data container from the database container that is using this data. The most reason I have heard is that if you need to update the database, you can still access the same data from the new database container. I am struggling to understand why this is better than just mounting a volume from the disk to the database container, and if you update the container, mount the same volume into the new database container. These processes are basically the same thing. Is there any use case that I can't see?

http://www.offermann.us/2013/12/tiny-docker-pieces-loosely-joined.html

This link tries to explain the benefit but still, the same thing can happen with mounting volumes.

0 投票
6 回答
31734 浏览

docker - 没有足够的熵来支持在 boot2docker 中运行的 docker 容器中的 /dev/random

在虚拟化 Linux 系统中耗尽熵似乎是一个常见问题(例如/dev/random 非常慢?让 linux 缓冲 /dev/random)。尽管使用了硬件随机数生成器 (HRNG),但通常建议使用像HAVEGED这样的熵收集守护进程。但是熵收集守护进程 (EGD) 不能在 Docker 容器内运行,它必须由主机提供。

对于基于 Ubuntu、RHEL 等 Linux 发行版的 docker 主机,使用 EGD 效果很好。让这样的守护进程在基于 Tiny Core Linux (TCL) 的 boot2docker 中工作似乎是另一回事。虽然 TCL 有扩展机制,但熵收集守护进程的扩展似乎不可用

因此,EGD 似乎是在(生产)托管环境中运行 docker 容器的合适解决方案,但如何解决它以在 boot2docker 中进行开发/测试?

由于在 boot2docker 中运行 EGD 似乎太难了,所以我想简单地使用 /dev/urandom 而不是 /dev/random。使用 /dev/urandom 的安全性稍差一些,但对于大多数不生成长期加密密钥的应用程序来说仍然可以。至少在 boot2docker 中进行开发/测试应该没问题。

0 投票
2 回答
3050 浏览

playframework - 在 docker 容器中播放框架自动加载

我正在尝试建立一个开发环境,用于在 docker 容器中开发 play 应用程序。我创建了一个安装了 sbt 的图像。然后,我将主机上的项目文件夹作为卷映射到容器,并以交互模式运行 shell:

然后我通过运行启动播放应用程序sbt ~run。播放服务器开始只是找到,当我在主机上编辑我的文件时它甚至会重新编译:

问题是刷新时更改不会出现在浏览器中。由于我禁用了缓存,因此没有缓存问题。如果我从主机运行应用程序,一切正常。

编辑:这是我用于使用 sbt 创建容器的 Dockerfile:

我做了更多的研究。在 docker 容器中,我像这样启动 play 应用程序:

在我的浏览器中加载页面工作正常。然后我在主机上更改我的索引文件。这会触发容器内的重新编译:

刷新我的浏览器仍然显示初始索引文件。即使容器内的播放应用程序获取了更改。我还检查了target/scala-2.10/classes/views/html(在我的主机上,因为我在容器中运行播放应用程序并且我不确定如何将多个终端附加到它)中的编译文件。编译的文件已更改。

我做的下一件事是按Ctrl-D。根据上面打印的消息“(服务器已启动,使用 Ctrl+D 停止并返回控制台...)”,这应该让我回到 sbt 控制台。但是,这会导致以下输出:

现在我之前所做的更改会在刷新后反映在浏览器中。

0 投票
1 回答
899 浏览

download - Docker 删除下载的文件

我正在尝试设置一个 Docker 容器来测试 Magento 扩展。我希望使用这样的 Dockerfile 来做到这一点:

但这失败了:

我认为这与我在 OS X 上使用 boot2docker 有关。(我记得不久前 OS X 与 Docker 存在一些文件系统共享问题。)所以我再次尝试使用这个 Dockerfile:

当我运行上面的代码时,curl 执行得很好并且没有错误地退出,但是生成的容器不包含下载的文件,所以下游的 tar 命令失败。

如果我检查中间容器,文件确实不存在。

那么它去哪儿了,我该如何设置一个允许我下载和修改文件系统的 Dockerfile?