如何在 Linux 上安装 Docker 和 Docker Compose如何在 Linux 上安装 Docker 和 Docker Compose如何在 Linux 上安装 Docker 和 Docker Compose如何在 Linux 上安装 Docker 和 Docker Compose
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上安装 Docker 和 Docker Compose

Docker 为您提供了在 Linux 系统上构建和运行容器所需的一切。容器类似于轻量级虚拟机。它们允许您创建可移植的应用程序映像,这些映像使用您主机的操作系统内核运行。

您可以在 Debian、Fedora、CentOS 和 Raspbian 平台上使用 Docker。这些分布的导数也将起作用。 Docker 为大多数受支持的平台提供 x86/x64 和 ARM 构建。我们在本指南中使用带有 apt 包管理器的 Debian 系统。可以在 Docker 文档中找到特定于其他发行版的说明。

Docker Compose 允许您构建和运行多个容器的堆栈。您创建一个 YAML 文件来配置应用程序的容器。然后,您可以使用单个命令启动所有容器并将它们链接在一起。 Compose 可帮助您将堆栈的组件分离为单独的容器化服务。

Compose 独立于 Docker 进行分发。在添加 Compose 之前安装 Docker——否则,Compose 将无法运行。

安装 Docker

您可以使用操作系统的包管理器来安装最新的 Docker 版本。您需要添加 Docker 的存储库,更新您的包列表,然后安装 Docker。

Debian/Ubuntu

首先添加安装过程所需的依赖项:

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release

接下来,添加 Docker 的存储库 GPG 密钥:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

将存储库添加到您的源并更新您的包列表:

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
sudo apt-get update

现在你可以安装 Docker:

sudo apt-get install docker-ce docker-ce-cli containerd.io

软呢帽

添加 Docker 的包存储库:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

安装泊坞窗:

sudo dnf install docker-ce docker-ce-cli containerd.io

中央操作系统

添加 Docker 的包存储库:

sudo yum -y install yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

安装泊坞窗:

sudo yum install docker-ce docker-ce-cli containerd.io

在没有 Sudo 的情况下使用 Docker

Docker 守护进程作为 root 运行。您通常必须在 Docker 命令前加上 sudo。如果您经常使用 Docker,这可能会变得乏味。将您自己添加到 docker 组将允许您在没有 sudo 的情况下使用 Docker。

sudo usermod -aG docker $USER

进入群组后,注销并重新登录。或者,运行 newgrp docker 命令以立即登录更新后的组。您现在应该能够从 Docker 命令中删除 sudo。

测试您的 Docker 安装

现在 Docker 已安装,是时候测试它是否正常工作了!您可以使用最小的 hello-world 图像。

docker run hello-world:latest

您应该会在终端中看到几行输出。 Docker 将首先在您的机器上查找 hello-world:latest 图像。由于它不存在,因此将从 Docker Hub 存储库中提取图像。

一旦图像被拉取,一个新的容器将被创建。容器配置为发出基本的“hello world”消息,然后退出。如果您看到该文本,则表明您的 Docker 安装正常!

管理 Docker 服务

您可以通过使用 systemctl 检查其服务来检查 Docker 是否正在运行。有两个组件需要考虑,docker 和 containerd。 docker 是 CLI 向其发送命令的 Docker 引擎守护进程。 containerd 是实际运行容器的底层运行时。

sudo systemctl status docker.service
sudo systemctl status containerd.service

您可以像管理系统上的任何其他服务一样管理守护进程。如果您想暂时停止 Docker 并释放容器使用的系统资源,请使用 systemctl stop:

sudo systemctl stop docker.service

您可以使用 systemctl start 重新启动服务。

添加 Docker-Compose

docker-compose 是一个单独的二进制文件,最好直接从项目的 GitHub 版本下载。大多数流行的 Linux 发行版都在其包管理器中包含 Compose,但它可能已经过时了。

前往 Docker Compose 的发布页面并记下最新版本号。在撰写本文时,它是 1.29.0。

在下面的命令中替换您看到的版本而不是 1.29.0。这将为您的系统下载正确的二进制文件并将其放入 /usr/local/bin。

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

接下来使文件可执行:

sudo chmod +x /usr/local/bin/docker-compose

您现在可以在终端中使用 docker-compose 命令。尝试运行 docker-compose --version 来检查。

创建一个简单的 Docker-Compose 文件

要使用 docker-compose,您必须创建一个 docker-compose.yml 文件。这描述了构成应用程序堆栈的容器。您可以指定容器使用的端口绑定、环境变量、网络和卷。

在同一 docker-compose.yml 文件中声明的容器自动成为同一堆栈的一部分。它们被链接到一个 Docker 网络中,因此它们可以使用它们的 docker-compose.yml 服务名称作为主机名来相互通信。

这是一个简单的 docker-compose.yml 来运行 PHP Web 服务器和 MySQL 数据库:

version: "3"

services:
  app:
    image: php8.0-apache
    environment:
      - MYSQL_SERVER=mysql
      - MYSQL_USERNAME=root
      - MYSQL_PASSWORD=example
    ports:
      - ${PORT:-80}:80
    restart: unless-stopped
  mysql:
    image: mysql:8.0
    expose:
      - 3306
    environment:
      - MYSQL_ROOT_PASSWORD
    volumes:
      - mysql:/var/lib/mysql
    restart: unless-stopped

volumes:
  mysql:

您可以通过运行 docker-compose up -d 来启动这两项服务。您会看到这两个图像都是从 Docker Hub 中提取的。然后将启动容器。您可以使用 docker-compose stop 停止它们。使用 docker-compose down 删除容器。

示例 YAML 文件展示了一些 Docker Compose 功能。容器在 services 节点下定义,每个容器声明其 Docker image。您可以将 shell 环境变量传递到容器 (environments) 并设置 Docker 端口绑定 (ports)。可以使用 $ {VARIABLE:-DEFAULT} 语法将环境变量插入到字符串中。如果变量没有在你的 shell 中设置,DEFAULT 将被用作值。您可以在我们的专门指南中了解有关 Docker Compose 的更多信息。

概括

您可以使用流行的 Linux 发行版的包管理器轻松安装 Docker。添加 Docker 存储库,然后安装 docker-ce、docker-ce-cli 和 containerd.io。这些组件为您提供构建和运行容器所需的一切。

启动并运行后,您可以编写 Dockerfile 并使用 docker build -t my-app:latest . 来构建它。然后使用 docker run my-app:latest 启动您的容器。

Docker-Compose 是一个额外的抽象层,可以更轻松地运行多个容器的“堆栈”。使用 Compose,您无需手动连续运行多个命令。您可以编写声明性 YAML 文件并使用 docker-compose up 来同时启动所有容器。

©2015-2025 艾丽卡 support@alaica.com