Many people are starting to moving away from Docker Desktop.  It is important to remember that Docker Desktop is not Docker!  Docker is a standalone tool that allows you to run containers.  Docker Desktop is a separate tool that gives you some information about your images and containers in a nice GUI.  In this article, I’ll give you a few tips for using Docker without Docker Desktop and show you how to use other tools to get the same information you can get from Docker Desktop.

Installing Docker on Windows without Docker Desktop

If you haven’t done the manual install of Docker yet, check out Vikrant Punwatkar’s blog post. For the rest of this article, I’ll use the docker install path c:docker as suggested.

After Uninstalling Docker Desktop

Restart your machine! This will help clear up potential issues when installing Docker manually.

Configuring Docker Daemon

You can use a json file to change the behavior of the docker engine

Create a new folder c:dockerconfig
Create a new file c:dockerconfigwindows-daemon.json

Set the data-root
This is where docker will store the images and container data
Make sure the final part of the path does NOT exist. Docker will create it the last folder in the path.

{“data-root”: “c:\docker\Data”}

Docker Plugins

I wanted to keep everything nicely contained in the c:docker folder.  But I discovered the compose plugin must be placed in C:Program Filesdockercli-plugins.

It won’t work if you try to put it in c:dockercli-plugins
There isn’t a config option to change the path to client plugins

You can verify the compose plugin is installed at the correct location by running “docker info”.

Compose is listed as a plugin with the correct path

Register the Docker Service

You can add optional flags to the dockerd command to register the service. This command mimics how docker desktop registers the docker service.

dockerd –register-service –service-name docker –group docker-users –config-file C:dockerconfigwindows-daemon.json

Upgrading Docker Engine

You will want to periodically check the docker download page for new version of docker.  Follow these steps to upgrade to the new version.

PS>Stop-Service docker
Download the updated zip file
Copy the updated exe files to c:docker
PS>Start-Service docker
Verify the new version is installed by running “docker info”

Docker Desktop Alternative Tools

Like Vikrant mentioned in his post, you can use Visual Studio and VSCode to manage your containers.  If you want a GUI experience that is close to Docker Desktop, check out one of these tools below.  Keep in mind that these tools do not include the docker exe file.  You still have to install docker manually.

Rancher Desktop by SUSE

The containers feature is still listed as experimental.
It lists all the containers with the ability to stop, start and delete
It lists all the images with the ability to delete
It does not have the ability to view container details

The containers tab of the Rancher Desktop ui

Podman-Desktop

This tool more closely resembles the Docker Desktop UI
It lists all the containers with the ability to stop, start, delete

For each container you can inspect, view logs, and access a terminal (which is a little buggy)

It lists all the images with the ability to delete

The containers tab of the Podman Desktop ui

Using Docker Without a GUI Tool

You can of course use docker without any GUI tools through the command line.  Here are some common things you can do with a docker gui and the equivalent command with the cli.

List containers

docker ps

Lists running containers

docker ps -a

Lists all containers

View logs

docker logs -n 100 <container name>

Shows the last 100 lines from the log for <container name>

docker logs -f -n 100 <container name>

Shows the last 100 lines from the log for <container name> and updates the display as new logs are received.

List container usage stats (memory/cpu)

docker stats

Show container details (environment variables/ports)

docker inspect <container name>

Interact with container

docker exec -it <container name> <command>

Command is usually powershell.exe or cmd.exe
Creates a terminal into the running container

Stop a container

docker stop <container name>

List images

docker image ls

Conclusion

If you are no longer using Docker Desktop, there are still plenty of ways to use Docker.  I hope this article helps you find the way that works best for you!