通过boot2docker安装到macos x文件系统的docker容器文件夹中的命名管道

rsutormin

我正在使用Mac OS X上的boot2docker通过docker image包装一些科学软件。该软件(https://github.com/voutcn/megahit.git)使用命名管道(在python代码中,但这并不重要) )以将不同的部分(用C编写)相互连接。我从主机Mac OS X机器安装了临时文件夹,以在docker容器中提供临时区域(因为软件的临时输出可能非常大),如下所示:

docker run -v /external/folder:/tmp/scratch <image> <args>

它给了我这个在容器内的安装线:

none on /tmp/scratch type vboxsf (rw,nodev,relatime)

在容器中运行的此名为管道创建的已安装文件夹内部失败。它甚至与python,C或任何特定语言都不相关。mkfifo pipe1在这个文件夹中用linux命令仔细检查了一个错误:

mkfifo: cannot create fifo 'pipe1': Operation not permitted

但是,它对于容器内部的任何未安装内部文件夹都适用。为什么会发生,如何解决?

PS:这是我为轻松重现此问题所做的工作。

1)带有boot2docker的Mac OS X

2)Dockerfile是:

FROM ubuntu:14.04
#WORKDIR /tmp <- this one would work
WORKDIR /tmp/scratch
ENTRYPOINT [ "mkfifo" ]
CMD [ "pipe1" ]

3)形象建设:

docker build --rm -t mine/namedpipes:latest .

4)运行(位于要挂载的外部主机文件夹中):

docker run -v $(pwd):/tmp/scratch mine/namedpipes:latest
罗·申伯格

升级到适用于Mac的Docker的最新版本,您的问题将很可能得到解决:https : //docs.docker.com/docker-for-mac/release-notes/#beta-2-release-2016-03-08 -1102-beta2

问题是FIFO实际上是您使用文件系统访问的内核对象,因此您需要额外的工作来支持跨内核FIFO(或Unix域套接字)-FIFO在运行docker守护程序的Linux guest虚拟机中有效,或者在OS X主机,而不是两者都存在,因此您不能在linux盒内创建OS X fifo,这是有道理的。这有点像试图在网络驱动器上创建一个fifo,这作为本地IPC机制没有意义。

https://docs.docker.com/docker-for-mac/osxfs/#file-types中详细介绍了当前对特殊文件的支持

跨系统管理程序支持的问题位于https://github.com/docker/for-mac/issues/483

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以编程方式删除Docker容器中的文件/文件夹

来自分类Dev

Docker的容器安装文件夹

来自分类Dev

Docker的容器安装文件夹

来自分类Dev

为什么Docker容器无法在已挂载的文件夹中创建文件夹

来自分类Dev

为什么Docker容器无法在已挂载的文件夹中创建文件夹

来自分类Dev

无法与 docker 容器共享文件夹

来自分类Dev

docker 容器内缺少文件夹

来自分类Dev

Docker数据容器,boot2docker和本地文件系统

来自分类Dev

如何使用Elastic Beanstalk将文件夹从主机安装到Docker容器?

来自分类Dev

将boot2docker和.docker文件夹移动到其他驱动器中

来自分类Dev

如何在boot2docker上安装Nano

来自分类Dev

Boot2Docker / Fig安装卷未刷新

来自分类Dev

如何在boot2docker上安装nano?

来自分类Dev

如何在主机操作系统和Docker容器之间共享文件夹

来自分类Dev

boot2docker启动脚本以与主机挂载本地共享文件夹

来自分类Dev

Windows文件和文件夹的权限错误(包含在Docker容器中)

来自分类Dev

重命名Docker容器中的文件

来自分类Dev

在OS X下从boot2docker复制Docker容器

来自分类Dev

在共享文件夹下运行Mongo的Boot2Docker(在Windows上)(不支持此文件系统)

来自分类Dev

在共享文件夹上运行Mongo的Boot2Docker(在Windows上)(不支持此文件系统)

来自分类Dev

如何在Docker中将主机文件夹与容器文件夹合并?

来自分类Dev

Docker:如何将主机文件夹与容器文件夹实时同步?

来自分类Dev

通过解析文件夹中的 XML 文件重命名文件夹

来自分类Dev

Docker不会将文件夹从主机同步到容器

来自分类Dev

在 docker 容器内挂载 VirtualBox 共享文件夹

来自分类Dev

带有Windows本地文件夹的Docker命名卷

来自分类Dev

与docker exec等效的boot2docker

来自分类Dev

COPY指令后,文件夹未在docker容器中显示

来自分类Dev

如何对 Docker 容器中运行的文件夹内存设置限制

Related 相关文章

  1. 1

    以编程方式删除Docker容器中的文件/文件夹

  2. 2

    Docker的容器安装文件夹

  3. 3

    Docker的容器安装文件夹

  4. 4

    为什么Docker容器无法在已挂载的文件夹中创建文件夹

  5. 5

    为什么Docker容器无法在已挂载的文件夹中创建文件夹

  6. 6

    无法与 docker 容器共享文件夹

  7. 7

    docker 容器内缺少文件夹

  8. 8

    Docker数据容器,boot2docker和本地文件系统

  9. 9

    如何使用Elastic Beanstalk将文件夹从主机安装到Docker容器?

  10. 10

    将boot2docker和.docker文件夹移动到其他驱动器中

  11. 11

    如何在boot2docker上安装Nano

  12. 12

    Boot2Docker / Fig安装卷未刷新

  13. 13

    如何在boot2docker上安装nano?

  14. 14

    如何在主机操作系统和Docker容器之间共享文件夹

  15. 15

    boot2docker启动脚本以与主机挂载本地共享文件夹

  16. 16

    Windows文件和文件夹的权限错误(包含在Docker容器中)

  17. 17

    重命名Docker容器中的文件

  18. 18

    在OS X下从boot2docker复制Docker容器

  19. 19

    在共享文件夹下运行Mongo的Boot2Docker(在Windows上)(不支持此文件系统)

  20. 20

    在共享文件夹上运行Mongo的Boot2Docker(在Windows上)(不支持此文件系统)

  21. 21

    如何在Docker中将主机文件夹与容器文件夹合并?

  22. 22

    Docker:如何将主机文件夹与容器文件夹实时同步?

  23. 23

    通过解析文件夹中的 XML 文件重命名文件夹

  24. 24

    Docker不会将文件夹从主机同步到容器

  25. 25

    在 docker 容器内挂载 VirtualBox 共享文件夹

  26. 26

    带有Windows本地文件夹的Docker命名卷

  27. 27

    与docker exec等效的boot2docker

  28. 28

    COPY指令后,文件夹未在docker容器中显示

  29. 29

    如何对 Docker 容器中运行的文件夹内存设置限制

热门标签

归档