我按照以下顺序执行以下Docker命令:
docker pull docker
docker run -ti <imgId>
https://hub.docker.com/_/docker/
现在我正在Docker镜像中。
假设我创建了一个临时文件夹并下载了一个Dockerfile。
mkdir temp
cd temp
curl <dockerfile>
docker build .
它会告诉我:无法连接到unix:///var/run/docker.sock上的Docker守护程序。 Docker守护程序正在运行吗?
这意味着需要启动docker
服务,但由于官方的docker镜像基于alpine linux,因此像service/systemctl
这样的命令不可用,所以我们必须执行apk add openrc --no-cache
来访问它们。
安装后,我仍然无法启动docker服务。
执行system docker start
时提示找不到docker
作为服务?
service: service docker does not exist
最终,我希望通过Jenkins构建此内容。
在构建步骤中,我执行Execute Shell
。
if [ -f "Dockerfile" ]; then
echo "Dockerfile exists ... removing it"
rm Dockerfile
fi
wget <dockerFile url>
docker build .
我故意不在Jenkins上使用openrc
,因为我想先进行本地测试。
service
和systemctl
这样的命令在 Docker 中基本上根本不起作用。将 Docker 作为容器运行是一种特别高级的设置,通常不建议这样做;通常您会配置 Jenkins 使用主机的 Docker 套接字。 - David Mazedocker
镜像可能是错误的。尽管Docker Hub页面上的镜像没有那么直接地说,但也是这样。 - David Maze