Is it possible to install only the docker cli and not the daemon
Solution 1:
First, download and unzip/untar the release for your system. Here are x86_64 binaries for mac, linux, windows.
After expanding the archive, you can find the docker CLI executable at ./docker/docker
- move that file into your path, and you're done.
If you're specifically looking to install the docker CLI into a docker image, here's my Dockerfile command to do so:
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 to this comment
Solution 2:
If you want to install Docker in Linux, then in the newest 1.12.0 release, Docker daemon and Docker client are in separate binary files.
This has been mentioned in release log:
Split the binary into two: docker (client) and dockerd (daemon) #20639
If you are installing Docker in Mac, then Mac OS binary is client-only: resource
Solution 3:
Adding to the approach from Aaron, if you're building your own image, you can now just use multi-stage builds to copy over the docker
binary from an existing external image, e.g.:
COPY --from=docker:dind /usr/local/bin/docker /usr/local/bin/
This pulls the docker
binary from the public
docker:dind
image on Dockerhub.
See: https://docs.docker.com/develop/develop-images/multistage-build/.
Solution 4:
You can (like the other answer suggests) download it direct from 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
The difference from the other answer is that there is no intermediate tar file. I use this in a Dockerfile RUN layer.
Solution 5:
On Windows, you can install the CLI by itself using chocolatey package manager.
Once you have chocolatey loaded you can run this from an admin command prompt:
choco install /y docker-cli
This seems to be much more up-to-date than the Windows link provided by Aaron, for some reason. (v19 instead of v17, as of Jan 2020)