是否可以只安装docker cli而不是守护进程

时间:2016-07-30 16:08:55

标签: docker

我想让docker CLI连接到远程守护进程,但我是否需要在本地计算机上安装包括守护进程在内的整个引擎?

8 个答案:

答案 0 :(得分:57)

首先,下载并解压缩/解压缩您系统的版本。以下是maclinuxwindows的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) 时很有用。