我想要 docker CLI 连接到远程守护进程,但我需要在本地计算机上安装整个引擎(包括守护进程)吗?
首先,下载并解压/解压适合您系统的版本。以下是适用于 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 至此评论
添加 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/。
在 Windows 上,您可以使用 chocolatey 包管理器自行安装 CLI。
一旦加载了 Chocolatey,您就可以从管理命令提示符运行它:
choco install /y docker-cli
出于某种原因,这似乎比 Aaron 提供的 Windows 链接更新得多。 (截至 2020 年 1 月,v19 取代 v17)
您可以(就像其他答案建议的那样)直接从 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 层中使用它。
如果您按照这些说明中所述从官方软件包存储库安装 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
如果您使用的是 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"]
}
对于 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
)时很有用。
如果您想要没有守护进程的 docker 和 docker-compose CLI,您可以将它们安装为 python 包,该包还安装可执行文件:
python pip install docker docker-compose
并设置环境变量 DOCKER_HOST 即
DOCKER_HOST = SSH://user@host
在Windows中最好使用winget命令:
winget install Docker.DockerCLI