A cross-platform desktop UI made by the podman team itself, is available at Podman Desktop
A familiar desktop graphical interface for the free and open container manager - Podman!
Publications
Linux offers the best experience and fastest speed when working with containers. Besides from avoiding the need for virtualization, when we develop, we usually target Linux for production purposes. The file-system speed and permissions don't fit good when not using something made for Linux. Although there is love for all operating systems, Linux is really shining here.
sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install -y build-essential sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update -y sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo usermod -aG docker ${USER} # Close and restart your terminal after adding your user to the docker group sudo systemctl enable docker # To start docker on boot sudo systemctl restart docker # To start docker now sudo systemctl is-active docker # To check if docker is running docker run hello-world # This to test the installation - docker cli must be able to run without sudo at this point
sudo apt-get install -y podman podman-compose
Distributions usually have very old podman versions, for more recent versions, use Alvistack project that provides repositories for most of the linux flavors.
This is referred to as Compatibility Mode - it should support all docker features, except the docker cli, in this case podman should be used instead. You can alias that if you want.
/var/run/docker.sock
export DOCKER_HOST=/var/run/docker.sock podman system service --time=0 unix://${DOCKER_HOST} --log-level=debug
After this point, one can use podman
or docker
or any other tool that uses the socket.
DOCKER_HOST
environment variable must be set and it has to have the same value that Container Desktop is using, when connected.
On MacOS, virtualization is required to support both docker and podman container engines. Also homebrew is seriously recommended to simplify the user experience with provisioning and setup. Due to high cost, at this moment, Container Desktop does not afford the subscription to be able to digitally sign applications, neither buying a digital certificate which is even more expensive.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew update brew upgrade
brew install colima
colima start
brew install docker
- this does not install Docker Desktop
xattr -d com.apple.quarantine /Applications/Container\ Desktop.app
brew install lima
limactl start podman
limactl shell podman
limactl start docker
limactl shell docker
This is referred to as Compatibility Mode - it should support all docker features, except the docker cli, in this case podman should be used instead. You can alias that if you want.
DOCKER_HOST
environment variable to point to the podman unix socket. This makes it easy for the docker cli to just use it.brew install podman
brew install colima
colima start
brew install docker
- this does not install Docker Desktop
DOCKER_HOST
environment variable must be set and it has to have the same value that Container Desktop is using, when connected.
On Windows, virtualization is required to support both podman and docker container engines. With the introduction of WSL, the development experience has evolved. It is highly recommended to move away from msys/cygwin and just use WSL. Most of the times we deploy on Linux anyway, so it is appropriate to have an experience closer to reality. It also gives one a good opportunity to learn Linux.
winget install -e --id=Microsoft.WindowsTerminal winget install "Container Desktop"
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart winget install -e --id=Microsoft.WSL
Restart the computer and then set-up the WSL distribution user account by starting wsl.exe
in a Windows Terminal
winget install -e --id=Microsoft.WSL
wsl --update wsl --set-default-version 2
winget install -e --id=Microsoft.WindowsTerminal winget install -e --id=Docker.DockerCLI winget install -e --id=RedHat.Podman winget install "Container Desktop"
This is referred to as Compatibility Mode - it should support all docker features, except the docker cli, in this case podman should be used instead. You can alias that if you want.
DOCKER_HOST
environment variable to point to the podman named pipewinget install -e --id=RedHat.Podman
winget install -e --id=Docker.DockerCLI
DOCKER_HOST
environment variable must be set and it has to have the same value that Container Desktop is using, when connected.
wsl --set-default-version 2
.wslconfig
file in %USERPROFILE%
directory, with the following: [wsl2] # ... kernelCommandLine = ipv6.disable=1 cgroup_no_v1=all
After modify/create, stop WSL engine using wsl.exe --shutdown
and then restart with wsl.exe
Container Desktop works on Windows, Mac and Linux providing the same graphical interface.
Container Desktop is great for skills improvement and learning features of 'podman'.
The dashboard offers just the essential features so that the users can feel right at home.
See below what you can manage with Container Desktop.
Be aware of all available secrets, define new ones or purge old from existence.
Manage shared volumes across containers, limit repetition and also be portable.
No popups to annoy you, in-depth details only when needed.