Ubuntu 24.04/22.04/20.04 中安装 Docker 和 Docker Compose
本文将详细介绍如何在Ubuntu系统上安装Docker
引擎和Docker Compose
工具。我们已在Ubuntu环境中完整测试本指南。
什么是Docker?
Docker是一款开源的容器化平台,通过将应用程序与其运行环境打包成轻量级容器,实现跨平台一致性运行。其核心特点包括:
- 轻量高效:共享宿主机内核,无需完整操作系统虚拟化
- 环境一致性:容器镜像可在开发、测试、生产环境无缝运行
- 快速部署:秒级启动时间,支持弹性扩缩容
- 资源隔离:每个容器拥有独立的文件系统、网络和进程空间
核心概念解析
术语 | 说明 |
---|---|
镜像(Image) | 静态模板文件,包含应用程序及其运行环境(类似软件安装包) |
容器(Container) | 镜像的运行实例,提供隔离的运行时环境 |
仓库(Registry) | 镜像存储和分发平台(如Docker Hub) |
系统要求
- 64位Ubuntu版本:
- Ubuntu 24.04 LTS (Noble)
- Ubuntu 22.04 LTS (Jammy)
- Ubuntu 20.04 LTS (Focal)
- 兼容架构:x86_64/amd64、arm64、ppc64le、s390x
卸载旧版本 (全新机器跳过这一步)
在安装 Docker Engine 之前,您需要卸载所有有冲突的软件包。
您的 Linux 发行版可能提供了非官方的 Docker 软件包,这些软件包可能会与 Docker 提供的官方软件包冲突。您必须在安装 Docker
Engine 正式版之前卸载这些软件包。
要卸载的非官方软件包包括:
- docker.io
- docker-compose
- docker-compose-v2
- docker-doc
- podman-docker
此外,Docker Engine 依赖于containerd
和runc
。Docker Engine 将这些依赖项捆绑为一个包:containerd.io
。如果您之前安装了containerd
或runc
,请卸载它们以避免与 Docker Engine 捆绑的版本发生冲突。
- 运行以下命令来卸载所有冲突的包:
1 | for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done |
- 清理残留配置
1 | sudo apt-get autoremove -y |
使用apt存储库安装
在新的主机上首次安装 Docker Engine 之前,您需要设置 Docker apt
存储库。之后,您可以从存储库安装和更新 Docker。
- 设置 Docker 的apt存储库。
1 | # Add Docker's official GPG key: |
- 安装 Docker 包。
1 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
- 测试 Docker
让我们继续,测试 Docker 是否运行正常:
1 | sudo docker run hello-world |
上述命令会下载一个 Docker 测试镜像,并在容器内执行一个 “hello_world” 样例程序。
如果你看到类似下方的输出,那么祝贺你!Docker 正常运行在你的 Ubuntu 系统中了。
1 | Unable to find image 'hello-world:latest' locally |
配置非Root用户权限(可选)
非root用户执行docker命令的时候, 如 docker ps -a
可能会报错
1 | Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied |
解决方法:
1 | sudo addgroup --system docker |
总结
通过本指南,您已完成:
- Docker核心概念理解
- 旧版本Docker的彻底清理
- Docker引擎的官方源安装
- Docker Compose插件的集成验证
- 常见权限问题的解决方案
参考资料
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lianglliu's Blog!