docker入门和安装

docker入门和安装

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,它允许您使用由一组容器组成的应用程序。
Docker Architecture diagram

Ubuntu安装

apt储存库安装

在新主机上首次安装 Docker Engine 之前,需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。

  1. 设置 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

  1. 安装 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
  1. 通过运行 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 下载的脚本之前,请务必检查这些脚本。在安装之前,请熟悉便利脚本的潜在风险和限制:

  • 脚本需要 rootsudo 权限才能运行。
  • 该脚本尝试检测您的 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 守护程序(无根模式)

Licensed under CC BY-NC-SA 4.0