我正在尝试在容器中运行docker。在某些文章中,我看到需要传递--privileged = true才能使之成为可能。
但是由于某些原因,我没有选择在运行时传递此参数。.因为某些自动化操作已经使我小心了,所以我无法访问它。
所以,我想知道是否有可能在Dockerfile中通过上述选项,以至于我没有将此作为参数传递。
现在这是我的dockerfile的内容。
FROM my-repo/jenkinsci/jnlp-slave:2.62
USER root
#RUN --privileged=true this doesnt work for obvious reasons
MAINTAINER RD_TOOLS "abc@example.com"
RUN apt-get update
RUN apt-get remove docker docker-engine docker.io || echo "No worries"
RUN apt-get --assume-yes install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common curl
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN apt-key fingerprint 0EBFCD88
RUN cat /etc/*-release
RUN apt-get --assume-yes install docker.io
RUN docker --version
RUN service docker start
没有传递privilaged = true参数,看来我无法在docker内部运行docker。
在这方面的任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
您不能从Dockerfile中强制容器以特权方式运行。
作为一般规则,您不能在Docker容器内运行Docker。更典型的设置是共享主机的Docker套接字。有一个官方的Docker映像尝试在https://hub.docker.com/_/docker/上进行尝试,并提出了一些不实用的建议。