我想让docker CLI连接到远程守护进程,但我是否需要在本地计算机上安装包括守护进程在内的整个引擎?
答案 0 :(得分:57)
首先,下载并解压缩/解压缩您系统的版本。以下是mac,linux,windows的x86_64二进制文件。
展开存档后,您可以在./docker/docker
找到docker CLI可执行文件 - 将该文件移到您的路径中,然后您就完成了。
如果您特别希望将docker CLI安装到docker镜像中,请执行以下Dockerfile命令:
ENV DOCKERVERSION=18.03.1-ce
RUN curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz \
&& tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 \
-C /usr/local/bin docker/docker \
&& rm docker-${DOCKERVERSION}.tgz
h / t到this comment
答案 1 :(得分:13)
如果你想在Linux中安装Docker,那么在最新的1.12.0 release中,Docker守护进程和Docker客户端都在单独的二进制文件中。
发布日志中已经提到过这个问题:
将二进制文件拆分为两个:docker(client)和dockerd(daemon)#20639
如果您在Mac中安装Docker,则Mac OS二进制文件仅限客户端:resource
答案 2 :(得分:6)
添加到 Aaron 的方法中,如果您正在构建自己的映像,您现在可以使用多阶段构建从现有的外部映像复制 docker
二进制文件,例如:
COPY --from=docker:dind /usr/local/bin/docker /usr/local/bin/
见:https://docs.docker.com/develop/develop-images/multistage-build/
答案 3 :(得分:3)
在Windows上,您可以使用chocolatey package manager自行安装CLI。
一旦您加载了巧克力味,就可以从管理命令提示符处运行它:
choco install /y docker-cli
由于某种原因,这似乎比Aaron提供的Windows链接更新得多。 (从2020年1月开始,从v19代替v17)
答案 4 :(得分:2)
如果您使用的是Windows,则可以从此处下载Docker CLI的最新版本:
StefanScherer/docker-cli-builder
并通过设置 <*trace.Event>(0xc000ed4bd0)
T=24=EvGoBlockSelect
G=26992255
T=3812773
Link = <*trace.Event>(0xc000ed4cf0)
T=21=EvGoUnblock
G=475
T=3832979
Link = <*trace.Event>(0xc000ed4e10)
T=14=EvGoStart
G=26992255
T=3841969
Link = <*trace.Event>(0xc000ed5050)
T=23=EvGoBlockRecv
G=26992255
T=4022571
Link = <*trace.Event>(0xc000edb3b0)
T=21=EvGoUnblock
G=26992257
T=7956792
Link =<*trace.Event>(0xc000edb4d0)
T=14=EvGoStart
G=26992255
T=7967489
Link =<*trace.Event>(0xc000edb4d0)
环境变量来指向远程Docker守护进程:
DOCKER_HOST
请注意,为了使其正常工作,必须将Docker Daemon配置为通过TCP公开其API。这可以在$env:DOCKER_HOST = 'tcp://X.X.X.X:2375'
文件中完成:
daemon.json
答案 5 :(得分:1)
如果您想要不带守护程序的docker和docker-composite CLI,则可以将它们作为python软件包安装,也安装可执行文件:
python pip install docker docker-compose
并设置环境变量DOCKER_HOST,即DOCKER_HOST = SSH://user@host
答案 6 :(得分:0)
您可以(如其他答案所示)直接从Docker下载:
docker_url=https://download.docker.com/linux/static/stable/x86_64
docker_version=18.03.1-ce
curl -fsSL $docker_url/docker-$docker_version.tgz | \
tar zxvf - --strip 1 -C /usr/bin docker/docker
与其他答案的不同之处在于,没有中间的tar文件。我在Dockerfile的RUN层中使用它。
答案 7 :(得分:0)
对于 Ubuntu:
apt-get update
apt-get download docker.io
dpkg --fsys-tarfile docker.io_*.deb | tar xOf - ./usr/bin/docker > ./docker-cli
chmod +x ./docker-cli
rm docker.io_*.deb
shopt -s expand_aliases # alias are not expanded in non-interactive mode (e.g. gitlab ci)
alias docker=$PWD/docker-cli
在您使用远程 docker 守护进程 (env DOCKER_HOST
) 时很有用。