在Ubuntu上安装Docker
Docker 是一款开源的应用容器引擎,让开发者可以打包应用及其依赖到标准化的计算单元中,确保软件的快速、一致的运行。无论在本地或云端环境,都可以轻松移植部署和运行。
Docker 容器启动简单快速,可节省大量资源,非常适合微服务应用。而Ubuntu 作为主流的 Linux 发行版,安装使用 Docker 上可以说是非常简单和快速。
本文将用最简单的方式教大家完成Docker在Ubuntu上的安装。
1. 安装前的系统要求和干净卸载
在 Ubuntu 系统上顺利安装 Docker 之前,需要满足一些基本的系统要求,并正确卸载任何旧版本残留文件(如有)。
1.1 操作系统版本要求
Docker Engine 支持 Ubuntu 的多个64位版本,包括:
- Ubuntu Mantic 23.10
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Focal 20.04 (LTS)
Docker 同时兼容多种硬件架构,如 x86_64、armhf、arm64、s390x 和 ppc64le。
1.2 卸载旧版本Docker
如果系统中残留旧版本的 Docker 包,可能会与官方版本产生冲突。需要先完整卸载这些包,常见的包括:
- docker.io
- docker-compose
- docker-doc
- podman-docker
此外,Docker 还依赖 containerd 和 runc 两个组件。如果之前单独安装过,也需要卸载以免发生版本冲突。可以通过以下命令一并卸载所有可能存在的旧版本包:
$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
sudo apt-get remove $pkg;
done
即便卸载命令报告没有这些包,也建议执行一遍,以确保系统环境的干净。
需要注意的是,卸载时 Docker 的数据目录 /var/lib/docker 下的镜像、容器、卷和网络等不会被自动删除。如果想要全新安装,可以手动删除该目录的内容。
按上述要求操作完成后,Ubuntu 系统就为 Docker 的顺利安装做好了准备。
2. 多种安装方式 Docker on Ubuntu
Ubuntu 上安装 Docker 提供了多种不同的方式,可根据具体需求选择合适的安装途径。
2.1 使用 Docker 官方存储库
Docker 官方提供了 apt 存储库,可以轻松在 Ubuntu 系统中安装 Docker Engine。
具体步骤如下:
- 设置 Docker 的存储库源
- 安装 Docker Engine、CLI、containerd 和插件
存储库方式安装的好处是,将来可以直接通过包管理器升级 Docker 到最新版本。
2.2 下载 DEB 包手动安装
对于无法使用 Docker 存储库的情况,也可以手动下载 DEB 安装包进行安装,对应的包括:
- containerd.io
- docker-ce
- docker-ce-cli
- docker-buildx-plugin
- docker-compose-plugin
手动下载相应的 DEB 包后,通过 dpkg 命令安装即可。这种方式需要手动跟进每次升级时重复操作。
2.3 使用一键脚本安装
Docker 官方提供了 get.docker.com
一键脚本,可以自动检测系统信息并在开发环境下快速自动化安装 Docker 及所需组件。
这种方式不支持自定义配置,而且不建议在生产环境使用,更适合临时测试和开发环境。脚本会自动安装最新的 Docker 稳定版本。
三种安装方式各有利弊,你可以根据自己的情况来安装。
2.4 额外方式:直接购买预装Docker的Ubuntu服务器(推荐)
其实最简便的方式,是直接去一些提供Docker镜像的Ubuntu Linux VPS厂商购买。这样可以最快捷开始使用,交付的标准化也有保障。
以下是之前分享过的文章:2024年3家最好的 Docker VPS 推荐,看这一篇就够了!
3. 验证 Docker 安装成功
无论采用哪种安装方式,完成 Docker Engine 在 Ubuntu 系统上的安装后,都应该进行验证以确保一切正常。
Docker 官方提供了一个非常简单的 hello-world 示例镜像,可以用于快速验证 Docker 是否安装和运行正常。只需执行以下命令:
$ sudo docker run hello-world
如果能够看到像下面这样的输出信息,就说明 Docker 已正确安装并可以运行:
Hello from Docker!
This message shows that your installation appears to be working correctly...
该命令会从 Docker Hub registry 下载一个测试镜像,并在容器中运行。当容器运行时,会打印一条测试消息,之后自动退出。
除了 hello-world 外,你也可以尝试运行一些其他的 Docker 官方镜像(如 nginx、redis 等)来进一步验证 Docker 运行状况。
成功运行了测试用例后,就代表你的Docker在ubuntu上正确安装。
4. 允许非 Root 用户运行 Docker(可选)
按照默认配置,只有 root 用户或者使用 sudo 命令的用户才能运行 Docker 命令。但在实际开发和测试时,频繁使用 sudo 并不方便,也不太安全。
因此,我们需要允许非root用户直接运行 Docker。
4.1 创建 Docker 用户组
要让非 root 用户能够运行 Docker 命令,可以创建一个 Docker 用户组,并将用户加入其中。
具体步骤如下:
- 创建 docker 组:
$ sudo groupadd docker
- 将您的用户加入 docker 组:
$ sudo usermod -aG docker $USER
- 重新启动您的会话,使更改生效。
加入 docker 组后,您就可以直接运行 Docker 命令而无需使用 sudo 前缀了。
4.2 使用 Rootless 模式
另一种更安全的方式是以 rootless 模式运行 Docker ,无需使用 root 权限。这种模式会创建一个独立的环境,使得 Docker 及其容器与主机系统完全隔离。
要启用 rootless 模式,只需在运行 Docker 命令时添加 --rootless
标志。但注意在使用前,需要先设置一些配置参数。详细步骤可参考 Docker 官方文档
5. 升级和卸载 Docker(如需)
如果你需要升级到较新版本或者干脆卸载 Docker,以下是在 Ubuntu 系统上升级和卸载 Docker 的方法。
5.1 升级 Docker Engine
如果您是通过 Docker 官方存储库的方式安装的,升级 Docker Engine 就非常简单:
- 更新 apt 软件包索引:
$ sudo apt-get update
- 安装最新版本的 Docker Engine、containerd 和 Docker Compose:
$ sudo apt-get upgrade docker-ce docker-ce-cli containerd.io docker-compose-plugin
如果希望安装特定版本的 Docker,可以先列出可用版本,然后指定版本号进行安装。
如果是通过下载 DEB 包手动安装的,升级时也是重复这个步骤,下载新版本的包并重新执行安装即可。
5.2 卸载 Docker Engine
要彻底卸载 Docker Engine,可以执行如下命令:
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
这将删除 Docker 软件包,但保留所有镜像、容器、卷和用户创建的配置文件。如果你想全新重装,可以执行额外的命令清理掉所有内容:
$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd
对于使用一键脚本安装的 Docker Engine,官方不建议再次使用脚本升级,而是推荐直接通过包管理器升级,以免造成冲突。
6. 关于Docker镜像的地域问题
理论上,我们购买的服务器距离用户越近,访问体验和管理体验也更好。因此如果你想选择特定地点的Ubuntu服务器安装Docker,可以参考这些节点整理。
亚洲:香港CN2 GIA VPS、台湾VPS、韩国VPS、日本VPS、印度VPS、尼泊尔VPS、巴基斯坦VPS、哈萨克斯坦VPS、伊拉克VPS
东南亚:新加坡VPS、菲律宾VPS、泰国VPS、孟加拉VPS、柬埔寨VPS、越南VPS、马来西亚VPS、印度尼西亚VPS、缅甸VPS、老挝VPS
中东:阿联酋迪拜VPS、沙特阿拉伯VPS、土耳其VPS、卡塔尔VPS、科威特VPS、巴林VPS、阿曼VPS
北美洲:美国VPS、加拿大VPS、墨西哥VPS
南美洲:巴西VPS、哥伦比亚VPS、阿根廷VPS、智利VPS、巴拉圭VPS
欧洲:英国VPS、德国VPS、法国VPS、意大利VPS、西班牙VPS、荷兰VPS、瑞典VPS、芬兰VPS、波兰VPS、乌克兰VPS、俄罗斯VPS、希腊VPS、保加利亚VPS
非洲:南非VPS、埃及VPS
大洋洲:澳大利亚VPS
网友留言: