【发布时间】:2017-08-15 18:05:02
【问题描述】:
我运行了一些命令,用于在 Ubuntu 14.04 上安装 Cuda 支持。为了做到这一点,我运行了以下命令,这是一系列组合命令:
apt-get install -y software-properties-common && add-apt-repository -y ppa:graphics-drivers/ppa && apt-get --purge remove "nvidia*" && apt-get --purge remove "cuda*" && cd Downloads && dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb && apt-get -y update && apt-get -y upgrade && apt-get install -y cuda
当我在正在运行的容器上执行此操作时,即我的 Dockerfile 仅包含命令
FROM ubuntu:14.04,然后我使用docker run -it <my new image name> bash并成功!-
当我从 Dockerfile 中执行此操作时,会出现很多运行时错误,例如:
invoke-rc.d:policy-rc.d 拒绝执行强制重载。
invoke-rc.d:policy-rc.d 拒绝执行启动。
我想澄清一下 - 当我在容器上运行 bash 并逐步按照 Dockerfile 命令执行时,它会成功,但如果我使用 docker build 在 dockerfile 中执行与 RUN 命令相同的命令,则会失败。
知道可能是什么问题以及如何解决它吗?
我想指出,我在某些地方看到有人将以下命令添加到他们的 dockerfile:
RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
没有什么比这更优雅了?运行 docker build 与 docker run -it 时权限不同吗?
【问题讨论】:
标签: docker dockerfile docker-build