我按以下顺序执行以下docker命令:
awk -F '=' '{print $1}' <<< 'abc=xyz'
https://hub.docker.com/_/docker/
现在我在Docker的“ docker”映像中
现在假设我创建一个临时文件夹并下载一个Dockerfile
docker pull docker
docker run -ti <imgId>
它会告诉我mkdir temp
cd temp
curl <dockerfile>
docker build .
这意味着需要启动Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
服务,但是由于官方docker映像位于 alpine linux 上,因此docker
之类的命令不可用,因此我们必须执行service/systemctl
来访问它们。
安装后,仍然无法启动docker服务。
执行apk add openrc --no-cache
表示找不到system docker start
作为服务吗?
docker
最终我想通过Jenkins构建它。
在构建步骤中,我执行service: service docker does not exist
Execute Shell
由于我要先在本地进行测试,因此我故意不对Jenkins进行if [ -f "Dockerfile" ]; then
echo "Dockerfile exists ... removing it"
rm Dockerfile
fi
wget <dockerFile url>
docker build .
答案 0 :(得分:0)
您要拖到此处的图像(带有latest
标签)不包含docker守护进程。它打算用作docker客户端。您想要的是首先使docker守护进程运行带有标记为dind
的映像(docker中的docker)。
docker network create dind
docker run --privileged --name docker --network dind -v docker-client-certs:/certs/client -d docker:dind
要验证它是否已启动并正常工作,可以检查日志。
docker logs docker
现在,您可以使用客户端容器连接到守护程序。这就是您要交互地连接到外壳的方式,就像您想要的那样:
docker run -ti --network dind -e DOCKER_TLS_CERTDIR=/certs -v docker-client-certs:/certs/client:ro docker
Docker命令应在此容器内工作。如果您执行docker version
,则应该同时看到客户端和服务器的版本。
请注意,这两个容器共享同一网络(某些示例在线功能链接,但已弃用)。它们还共享一些TLS证书,这些证书是在启动dind
映像时生成的。