docker安装
概述
docker官方文档:https://docs.docker.com
Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分离,以便快速交付软件。借助 Docker,您可以像管理应用程序一样管理基础架构。通过利用 Docker 的方法来交付、测试和部署代码,可以显著减少编写代码和在生产环境中运行代码之间的延迟。
Docker 提供了在松散隔离的环境(称为容器)中打包和运行应用程序的功能。隔离和安全性允许您在给定主机上同时运行多个容器。容器是轻量级的,包含运行应用程序所需的一切,因此无需依赖主机上安装的内容。您可以在工作时共享容器,并确保与您共享的每个人都能获得以相同方式工作的相同容器。
Docker 提供了用于管理容器生命周期的工具和平台:
- 使用容器开发应用程序及其支持组件。
- 容器将成为分发和测试应用程序的单元。
- 准备就绪后,将应用程序作为容器或业务流程服务部署到生产环境中。无论您的生产环境是本地数据中心、云提供商还是两者的混合,这都是一样的。
Docker 使用客户端-服务器体系结构。Docker 客户端与 Docker 守护程序通信,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以在同一系统上运行,也可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护程序使用 REST API、UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。

Ubuntu安装
apt储存库安装
在新主机上首次安装 Docker Engine 之前,需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。
- 设置 Docker
apt的存储库。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] 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-get update
如果您使用 Ubuntu 衍生发行版,例如 Linux Mint,则可能需要使用
UBUNTU_CODENAME而不是VERSION_CODENAME。
- 安装 Docker 包。
若要安装最新版本,请运行:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
若要安装特定版本的 Docker Engine,请首先在存储库中列出可用版本:
# List the available versions:
apt-cache madison docker-ce | awk '{ print $3 }'
5:24.0.0-1~ubuntu.22.04~jammy
5:23.0.6-1~ubuntu.22.04~jammy
...
选择所需的版本并安装:
VERSION_STRING=5:24.0.0-1~ubuntu.22.04~jammy
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
- 通过运行
hello-world映像来验证 Docker 引擎安装是否成功。
sudo docker run hello-world
此命令下载测试映像并在容器中运行它。当容器运行时,它会打印确认消息并退出。
现在,您已成功安装并启动 Docker Engine。
尝试在没有root的情况下运行时收到错误?
用户组存在,但不包含docker用户,这就是需要用于sudo运行 Docker 命令的原因。继续执行 Linux 安装后配置,以允许非特权用户运行 Docker 命令和其他可选配置步骤。
要升级 Docker 引擎,请按照安装说明的第 2 步操作,选择要安装的新版本。
脚本安装
Docker 提供了一个方便的脚本,https://get.docker.com 以非交互方式将 Docker 安装到开发环境中。不建议将便利脚本用于生产环境,但它可用于创建适合需求的预配脚本。另请参阅使用存储库安装步骤,了解使用软件包存储库进行安装的安装步骤。该脚本的源代码是开源的,您可以在 GitHub上的 docker-install 存储库中找到它。
在本地运行从 Internet 下载的脚本之前,请务必检查这些脚本。在安装之前,请熟悉便利脚本的潜在风险和限制:
- 脚本需要
root或sudo权限才能运行。 - 该脚本尝试检测您的 Linux 发行版和版本,并为您配置包管理系统。
- 该脚本不允许您自定义大多数安装参数。
- 该脚本在不要求确认的情况下安装依赖项和建议。这可能会安装大量软件包,具体取决于主机的当前配置。
- 默认情况下,该脚本会安装 Docker、containerd 和 runc 的最新稳定版本。使用此脚本预配计算机时,这可能会导致 Docker 的意外主要版本升级。在部署到生产系统之前,请始终在测试环境中测试升级。
- 该脚本不是用于升级现有 Docker 安装而设计的。使用脚本更新现有安装时,依赖项可能无法更新到预期版本,从而导致版本过时。
提示:在运行之前预览脚本步骤
您可以使用以下--dry-run选项运行脚本,以了解脚本在调用时将运行哪些步骤:curl -fsSL https://get.docker.com -o get-docker.sh sudo sh ./get-docker.sh --dry-run
此示例从 https://get.docker.com 下载脚本并运行该脚本以在 Linux 上安装 Docker 的最新稳定版本:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>
现在,您已成功安装并启动 Docker Engine。该 docker 服务在基于 Debian 的发行版上自动启动。在 RPM 基于 CentOS、Fedora、RHEL 或 SLES 的发行版上,您需要使用适当的 systemctl or service 命令手动启动它。如消息所示,默认情况下,非 root 用户无法运行 Docker 命令。
以非特权用户身份使用 Docker,还是以无根模式安装?
安装脚本需要root安装和使用 Docker 的sudo权限。如果要授予非 root 用户访问 Docker 的权限,请参阅 Linux 的安装后步骤。您还可以在没有权限的情况下root安装 Docker,或配置为在无根模式下运行。有关在无根模式下运行 Docker 的说明,请参阅以非 root 用户身份运行 Docker 守护程序(无根模式)。