是否可以只安装dockercli而不安装守护程序



我想让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二进制文件Dockerhub上的docker:dind图像。

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

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

这已经在发布日志中提到:

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

如果您在Mac中安装Docker,则Mac OS二进制文件仅限客户端:resource

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

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

一旦你加载了巧克力,你可以从管理员命令提示符运行:

choco install /y docker-cli

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

如果按照这些说明中的说明从官方软件包存储库安装docker,则可以简单地安装docker-ce-cli软件包,并省略docker-cecontainerd.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守护程序:

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

请注意,为了使其工作,必须将Docker Daemon配置为通过TCP公开其API。这可以在daemon.json文件中完成:

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

如果你想让docker和docker在没有守护程序的情况下组成CLI,你可以将它们安装为python包,该包还安装可执行文件:

python pip install docker docker-compose 

并设置环境变量DOCKER_HOST,即DOCKER_HOST = SSH://user@host

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

最新更新