深入理解Docker:docker、podman-docker、docker.io和docker-ce的区别

2024-01-09 09:53:50 浏览数 (2)

今天我们要来了解一下关于Docker的一些知识,特别是在Ubuntu 22.04服务器上关于docker、podman-docker、docker.io以及docker-ce的区别。

docker、podman-docker、docker.io和docker-ce

初始化一个全新的Ubuntu 22.04系统,你可能会发现在尝试执行 docker 命令时,系统会给你这样的反馈:“Command 'docker' not found, but can be installed with...”

代码语言:bash复制
ubuntu@your-server:~$ docker
Command 'docker' not found, but can be installed with:
sudo snap install docker         # version 20.10.24, or
sudo apt  install podman-docker  # version 3.4.4 ds1-1ubuntu1.22.04.2
sudo apt  install docker.io      # version 24.0.5-0ubuntu1~22.04.1
See 'snap info docker' for additional versions.

这里有四个备选:docker、podman-docker、docker.io以及不在其中的docker-ce。当我们在面对这样的多元选择瞬间,确实可能会感觉有些迷茫。接下来,我们会深入解析一下这四者的区别。

docker:这是一个由德克萨斯大学的奥斯汀分校维护的docker snap版。snap是一种跨多种Linux发行版的新型软件打包格式,方便更新和隔离,docker就是基于这个格式的Docker社区版的封装。然而,它可能并不包含所有的Docker特性,并且可能存在一些配置差异,例如网络配置等。

podman-docker:Podman是一种无需daemon(即守护进程)环境就可以运行的下一代Linux容器工具。它的使用感觉就像Docker,但实际上并没有运行在后台的守护进程。除此以外,它的命令行调用和docker是向后兼容的,可以很容易转换过来。

docker.io:这个是Ubuntu官方维护的docker版本,存在于Ubuntu的官方库中,使用 sudo apt install docker.io 命令可以方便简洁地获取。但是,由于它往往落后于最新版Docker,可能缺少最新的一些功能。

docker-ce:这是Docker社区版(Community Edition)。含有了Docker引擎用于创建和管理Docker镜像和容器,以及 Docker 命令行界面 (CLI) 客户端。适合在笔记本、桌面和开发团队使用,提供频繁的更新和新特性。

由于以上bash命令行中没有给出docker-ce的安装办法,这里给出安装步骤。

安装Docker CE

下面是在Ubuntu系统上安装Docker CE 的步骤:

更新你的现有列表包索引:

代码语言:bash复制
sudo apt-get update

安装让 APT 可以通过 HTTPS 使用存储库(repository)的包:

代码语言:bash复制
sudo apt-get install 
    apt-transport-https 
    ca-certificates 
    curl 
    gnupg 
    lsb-release

添加Docker的官方GPG密钥:

代码语言:bash复制
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

使用下面的命令设置稳定的仓库:

代码语言:bash复制
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

再次更新你的包索引:

代码语言:bash复制
sudo apt-get update

最后,安装Docker CE

代码语言:bash复制
sudo apt-get install docker-ce docker-ce-cli containerd.io

验证Docker是否成功安装,运行docker命令:

代码语言:bash复制
sudo docker run hello-world

这个命令会下载一个测试图像并在容器中运行它。当容器运行时,它会打印出一个信息性消息。然后,如果能够成功运行,表明Docker是正确安装的。

Docker版本选择

看到这里,你可能已经对这四个版本有了一个初步了解。究竟该选择哪个版本呢?那就得看你的具体需求了。如果你希望对特性最新、最全面的版本进行开发,或者是在生产环境上使用,docker-ce可能会是你的首选。如果你对容器的daemon环境有所顾及,或者是想体验一下新的Linux容器运行方式,你也许可以选择 podman-docker。

总结

总的来说,无论你选择哪个版本,都应该根据你自己的实际需求进行。每一种方案都有它自己的优势和特性,理解这些差异,并根据自己需求来选择,才能更好的利用这些工具。

希望这篇文章能帮助你理解在Ubuntu系统上进行Docker安装的一些基本知识和选择。

0 人点赞