无法在Ubuntu Server上构建Dockerfile

时间:2020-04-07 21:48:51

标签: python docker dockerfile

我正在处理python项目,而在本地Windows上工作时却在Ubuntu Server上遇到此问题。当尝试运行mkdir指令时,它将在第二步中停止。看来我无法运行典型的Ubuntu指令(apt-get clean,apt-get update)

Dockerfile

FROM python:3

RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install --upgrade pip==20.0.2 && pip install -r requirements.txt
COPY . /code/

输出错误

OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:297: applying cgroup configuration for process caused \"mountpoint for devices not found\"": unknown

2 个答案:

答案 0 :(得分:0)

您能够运行Docker hello-world 镜像吗?如果不是,则表明您的安装/配置存在问题

$ docker run hello-world

有关安装后步骤的更多信息,请参见here。否则,第一种选择是尝试重新启动Docker

$ sudo systemctl restart docker

Docker守护程序必须在后台以root权限运行,在未完全应用新安装的机器上更新的守护程序组权限之前,我遇到了问题。重新启动守护程序,或注销并登录可能会解决此问题。

此外,当您在Dockerfile中声明WORKDIR时,将自动创建路径(如果尚不存在)。设置WORKDIR后,所有路径都可以并且应该相对于它相对。知道了这一点,我们可以简化Dockerfile

FROM python:3

WORKDIR /code
COPY requirements.txt .
RUN pip install --upgrade pip==20.0.2 && pip install -r requirements.txt
COPY . .

这足以解决您的问题。以我的经验,Docker构建的回溯有时可能会相当模糊,但听起来似乎是由于主机上的权限问题或容器内的语法问题而导致的创建目录尝试失败而引起的特定错误。

答案 1 :(得分:0)

我通过(重新)安装 apt 而不是 snap 解决了这个问题:

sudo snap remove docker
sudo apt install docker-io

测试(现在工作):

sudo docker run hello-world