用docker搭建开发环境

新手上路,请多包涵

我想用docker搭建我的python开发环境,这是我的想法

MyProject:
    codefile1.py
    codefile2.py
    Dockerfile

我的Dockerfile如下:

FROM python:3.6.3
MAINTAINER hulei886 <hulei886@aliyun.com>

RUN mkdir /opt/src

WORKDIR /opt/src

COPY ./requirements.txt /opt/src

RUN pip install -r requirements.txt

VOLUME ./ /opt/src

CMD ["python"]

下面是我的问题:
我的想法是用VOLUME把当前目录映射到容器中的/opt/src目录,这样当我修改容器外的代码的时候,就不需要重新build image,但这样在创建容器的时候总是出错,错误信息为:

docker: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "process_linux.go:368: container init caused \"open /dev/ptmx: no such file or directory\"".

这是哪里出错了?我只要把VOLUME这一行注释掉就不会有错误了

大神们请帮助一下,不胜感激!

阅读 6.1k
3 个回答
新手上路,请多包涵

可以改成 VOLUME . /opt/src 试试

新手上路,请多包涵

目录映射是在执行时完成的,不是在build时完成的。

Dockerfile里只能申明哪个目录会被用来mount volume,不能申明映射关系。因为你build好的image可能会被拿到其他机器用,你申明的映射关系的来源路径在其他机器中未必存在。

如果你是需要把本地路径的文件给存到image里,那么你应该使用COPY命令。

如果你是需要映射,请在build完后执行image时用-v参数映射。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题