在 Linux 上安装 Docker:详细教程 – wiki基地

在 Linux 上安装 Docker:详细教程

Docker 是一款开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(除非手动开放),更重要的是,容器的性能开销极低。

本教程将详细介绍如何在主流的 Linux 发行版上安装 Docker Engine。

1. 准备工作

在安装 Docker 之前,请确保您的系统满足以下条件并进行必要的清理。

系统要求

Docker Engine 适用于 64 位操作系统,并且需要 Linux 内核版本 3.10 或更高。通常,新的 Linux 发行版都满足这些要求。

卸载旧版本(可选)

如果您之前安装过旧版本的 Docker,建议先卸载它们以避免冲突。

bash
sudo apt-get remove docker docker-engine docker.io containerd runc

或者对于基于 RPM 的系统:

bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

这些命令不会删除 /var/lib/docker/ 中的数据,包括镜像、容器、卷和网络配置。如果您想完全清除 Docker 相关数据,可以手动删除该目录:

bash
sudo rm -rf /var/lib/docker

2. 在不同的 Linux 发行版上安装 Docker

推荐使用 Docker 官方的安装脚本或仓库进行安装,以确保获得最新和最稳定的版本。

2.1. Ubuntu/Debian

以下是在 Ubuntu 或 Debian 系统上安装 Docker Engine 的步骤。

a. 更新 apt 包索引并安装必要的工具

bash
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

b. 添加 Docker 的官方 GPG 密钥

bash
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

c. 设置稳定版仓库

bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

如果您使用的是 Debian,将 ubuntu 替换为 debian

d. 安装 Docker Engine

再次更新 apt 包索引,然后安装 Docker Engine、Containerd 和 Docker Compose。

bash
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

e. 验证安装

通过运行 hello-world 镜像来验证 Docker Engine 是否正确安装。

bash
sudo docker run hello-world

如果一切正常,您将看到一条消息,说明您的安装工作正常。

2.2. CentOS/Fedora

以下是在 CentOS 或 Fedora 系统上安装 Docker Engine 的步骤。

a. 卸载旧版本(如果存在)

bash
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

b. 安装 yum-utils 包 (提供 yum-config-manager 工具)

bash
sudo yum install -y yum-utils

c. 设置 Docker 稳定版仓库

bash
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

对于 Fedora,将 centos 替换为 fedora

bash
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/fedora/docker-ce.repo

d. 安装 Docker Engine

bash
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

e. 启动 Docker 并设置开机自启

bash
sudo systemctl start docker
sudo systemctl enable docker

f. 验证安装

通过运行 hello-world 镜像来验证 Docker Engine 是否正确安装。

bash
sudo docker run hello-world

如果一切正常,您将看到一条消息,说明您的安装工作正常。

3. 后续配置(可选但推荐)

3.1. 将当前用户添加到 Docker 组(非 root 用户管理 Docker)

默认情况下,docker 命令需要 root 权限才能运行。如果您想以非 root 用户身份运行 Docker,需要将您的用户添加到 docker 组中。

bash
sudo usermod -aG docker $USER

更改后,您需要注销并重新登录,或者重启您的终端会话,以使更改生效。然后,您就可以在不使用 sudo 的情况下运行 docker 命令了:

bash
docker run hello-world

3.2. 配置 Docker 镜像加速器

由于网络原因,从 Docker Hub 拉取镜像可能会很慢。配置镜像加速器可以显著提高下载速度。您可以选择阿里云、腾讯云、DaoCloud 等提供的免费加速服务。

以阿里云为例,登录阿里云容器镜像服务,找到镜像加速器配置,会提供一个专属地址。然后,编辑或创建 /etc/docker/daemon.json 文件:

bash
sudo nano /etc/docker/daemon.json

添加以下内容,将 YOUR_MIRROR_ADDRESS 替换为您获取到的加速器地址:

json
{
"registry-mirrors": ["YOUR_MIRROR_ADDRESS"]
}

保存并退出,然后重新加载 Docker 配置并重启 Docker 服务:

bash
sudo systemctl daemon-reload
sudo systemctl restart docker

4. 基本 Docker 用法

安装完成后,您可以尝试一些基本的 Docker 命令:

  • 查看 Docker 版本:
    bash
    docker version
  • 查看 Docker 信息:
    bash
    docker info
  • 搜索镜像:
    bash
    docker search ubuntu
  • 拉取镜像:
    bash
    docker pull ubuntu:latest
  • 列出本地镜像:
    bash
    docker images
  • 运行容器(以后台模式运行一个 Nginx 容器并将容器的 80 端口映射到主机的 8080 端口):
    bash
    docker run -d -p 8080:80 --name mynginx nginx:latest
  • 列出正在运行的容器:
    bash
    docker ps
  • 列出所有容器(包括已停止的):
    bash
    docker ps -a
  • 停止容器:
    bash
    docker stop mynginx
  • 启动容器:
    bash
    docker start mynginx
  • 删除容器:
    bash
    docker rm mynginx
  • 删除镜像:
    bash
    docker rmi ubuntu:latest

总结

通过本教程,您应该已经在您的 Linux 系统上成功安装了 Docker Engine,并对其进行了基本的配置和操作。Docker 容器化技术极大地简化了应用程序的部署和管理,助您更高效地进行开发和运维工作。现在,您可以开始探索 Docker 的强大功能,构建和运行您自己的容器化应用程序了。

滚动至顶部