首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从工具箱中运行docker

问从工具箱中运行docker
EN

Stack Overflow用户
提问于 2018-01-01 12:30:06
回答 1查看 172关注 0票数 0

在Google Container OS中,我想使用它作为我的云开发环境。如何从工具箱运行docker命令?我是否需要将docker.sock添加为绑定挂载?我需要能够运行docker (和docker-compose)来运行我的开发环境。

EN

回答 1

Stack Overflow用户

发布于 2018-01-15 19:58:36

Google Container OS镜像附带了已经安装和配置的docker,所以如果您从这些镜像之一创建虚拟机,并通过SSH进入机器,那么您将能够从命令行使用docker命令,而无需任何预先配置。

至于docker-compose,这不是预装的。但是,您可以通过使用您提到的工具箱来安装此工具和其他所需的相关工具/程序,该工具箱在类似Debian chroot的环境中提供了一个shell (包括一个包管理器)(在这里,您会自动获得root权限)。

您可以按照以下步骤安装docker-compose:

1)如果您还没有,可以通过运行/usr/bin/toolbox进入工具箱环境

2)查看最新版本的docker-compose here。

3)您可以运行以下命令来检索并在机器上安装docker-compose (用您在步骤2中检索到的最新版本替换docker-compose版本号):

代码语言:javascript
复制
curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

此时,您可能已经发现,尽管现在可以在工具箱中运行新安装的docker-compose命令,但不能运行docker命令。这是因为在缺省情况下,工具箱环境不能访问具有rootfs的所有路径,并且可用的文件系统在两个环境之间并不对应。

可以通过退出工具箱外壳程序,然后编辑允许您配置工具箱设置的/etc/default/toolbox文件来解决此问题。这将允许您通过以下步骤在标准环境中提供对docker二进制文件的访问:

1)确保您不再处于工具箱外壳中,然后运行命令which docker。您将看到类似于/usr/bin/docker的内容。

2)打开文件/etc/default/toolbox

3) TOOLBOX_BIND行指定了在工具箱环境中可用的根文件路径。为了确保docker在工具箱环境中可用,您可以尝试向TOOLBOX_BIND部分添加一个条目,例如--bind=/usr/bin/docker:/usr/bin/docker。

然而,我发现,尽管可以编辑/etc/default/toolbox以使docker二进制文件在工具箱环境中可用,但当某些docker命令在工具箱环境中运行时,会生成额外的错误,因为预先安装在机器上的docker版本被配置为使用特定的配置文件和目录,尽管可以编辑/etc/default/toolbox文件并使所有必需的位置都可以从工具箱环境中访问,但通过遵循在debian上安装docker的说明找到here,在工具箱中安装docker可能会更简单。

然后,您将能够从工具箱中发出docker和docker-compose命令。

或者,也可以简单地在标准VM上安装docker和docker-compose (即,不一定使用Google Container OS机器类型),尽管这种方法的适用性取决于您的用例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48047141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档