是否可以只安装docker cli而不安装daemon

问题描述 投票:0回答:10

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

docker
10个回答
127
投票

首先,下载并解压/解压适合您系统的版本。以下是适用于 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 至此评论


20
投票

添加 Aaron 的方法,如果您正在构建自己的映像,您现在可以使用多阶段构建从现有外部映像复制

docker
二进制文件,例如:

COPY --from=docker:dind /usr/local/bin/docker /usr/local/bin/

这将从公开中提取

docker
二进制文件
docker:dind
图像在 Dockerhub

参见:https://docs.docker.com/develop/develop-images/multistage-build/


18
投票

如果您想在 Linux 中安装 Docker,那么在最新的 1.12.0 版本中,Docker 守护进程和 Docker 客户端位于单独的二进制文件中。

发布日志中已提到这一点:

将二进制文件分成两部分:docker(客户端)和dockerd(守护进程)#20639

如果您在 Mac 中安装 Docker,则 Mac OS 二进制文件仅适用于客户端:资源


11
投票

在 Windows 上,您可以使用 chocolatey 包管理器自行安装 CLI。

一旦加载了 Chocolatey,您就可以从管理命令提示符运行它:

choco install /y docker-cli

出于某种原因,这似乎比 Aaron 提供的 Windows 链接更新得多。 (截至 2020 年 1 月,v19 取代 v17)


10
投票

您可以(就像其他答案建议的那样)直接从 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 层中使用它。


8
投票

如果您按照这些说明中所述从官方软件包存储库安装 docker,则只需安装

docker-ce-cli
软件包并省略
docker-ce
containerd.io
的安装。

完整安装顺序(适用于 Ubuntu):

sudo apt-get update

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

# Here is the part that is different
sudo apt-get install docker-ce-cli

3
投票

如果您使用的是 Windows,则可以从此处下载最新版本的 Docker CLI:

StefanScherer/docker-cli-builder

并通过设置

DOCKER_HOST
环境变量指向远程 Docker Daemon:

$env:DOCKER_HOST = 'tcp://X.X.X.X:2375'

请注意,为了使其工作,必须将 Docker 守护进程配置为通过 TCP 公开其 API。这可以在

daemon.json
文件中完成:

{
    "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}

3
投票

对于 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
)时很有用。


2
投票

如果您想要没有守护进程的 docker 和 docker-compose CLI,您可以将它们安装为 python 包,该包还安装可执行文件:

python pip install docker docker-compose 

并设置环境变量 DOCKER_HOST 即

DOCKER_HOST = SSH://user@host


0
投票

在Windows中最好使用winget命令:

winget install Docker.DockerCLI
© www.soinside.com 2019 - 2024. All rights reserved.