Docker CE vs Docker.io

Hi, I would like to know if Dietpi installs docker comunity edition vs .io because is the one that Debian support, because I saw a post on stackoverflow, that tells that Debian Ubuntu seems to used the io version, and that the io version was an optimized version.

This come because of this issue on Portainer Failed Loading Environment · Issue #12925 · portainer/portainer · GitHub

That a friend of mine with Ubuntu didn’t have because he didn’t get the latest update because he is on the docker.io version.

Regards!

it depends

On RISC-V we use docker.io from Debian repo as the official Docker repo does not support RISC-V yet. For the rest, packages are installed from Docker repo directly.

So the preferred version is the CE? Is true that io version is lighter an consume less memory?

Yes

I don’t know

TLDR;
docker-ce contains the engine (dockerd), it’s the “official” package
docker-cli contains the CLI tool, also from the “official” package
docker-io is the distribution maintained package which contains CLI and engine in one package.


As far as I know the apt version (docker.io) is the same as the docker CE version.
The difference is, that the apt repos are not as often updated as the version you can get from the official docker website. So you may have to wait longer for bugfixes and new features when using the apt version.
(if you go to docker.io you land on docker.com)

Officially docker does not support RISC-V architecture, but debian maintains a package which does. So for RISC-V you need to use the package Debian maintains.

On Ubuntu it’s quite the same story: Ubuntu maintains their own package but you can also get the official one via apt.

And to complete this confusing picture: Since debian 12 the package is split (see TLDR;)

:sweat_smile:

The versions are different on older Debian versions. Usually one wants to stay with the latest versions, hence we use the official repo from Docker themselves, instead of the pinned version provided by Debian.

Right now, that caused this minimum API version error with Portainer, which can however be worked around. But once Portainer adjusted their minimum API version accordingly, it won’t run on docker.io from Debian Bullseye and Bookworm anymore. And there won’t be any workaround possible for this, but staying on old Portainer versions, or doing a distro upgrade to Debian Trixie.

So it has up and downsides, but since the downside can be worked around, and a newer version is generally seen better than an older one, IMO staying with the Docker repo and docker-ce is the right thing.

Side note: The docker.io package is also the Docker Community Edition (CE), just an older version that stays pinned within one Debian release as of common Debian policy, with a different package name, but based on same source code. So the question essentially is whether one wants to stay on an older Docker version or be able to upgrade to the newest one. If a particular older one is wanted, that can be also installed from the Docker repository, or the older package pinned via apt-mark hold docker-ce. But not needed in this particular case as of available workarounds, see below.

See the official announcement from the Docker blog, with two workarounds:

Is true until Debian Trixie. Now Debian split the CLI into a dedicated docker-cli package. The Docker repo has docker-ce-cli instead :smile:.

1 Like