在 Ubuntu 上安装与配置 Docker 的完整指南

Docker 是一种流行的容器化平台,广泛用于开发、部署和运行应用程序。本文将详细介绍如何在 Ubuntu 系统上卸载旧版本 Docker、安装最新版本 Docker 以及进行相关配置。无论您是 Docker 新手还是有经验的用户,这份指南都将帮助您顺利完成安装和配置过程。

前置条件

  • 一台运行 Ubuntu 的计算机(本文以 Ubuntu 20.04 为例)。
  • 具有 sudo 权限的用户。

1. 卸载原有版本

在安装最新版本的 Docker 之前,建议先卸载系统中可能存在的旧版本,以避免冲突。

shell 复制代码
sudo apt-get remove docker docker-engine docker-ce docker.io

如果您需要删除所有的镜像、容器和卷(注意:如果是第一次安装,请忽略此步骤):

shell 复制代码
sudo rm -rf /var/lib/docker

备注 :apt-get remove 会保留软件的配置文件。如果想彻底删除包括配置文件,请执行以下操作:

查看相关软件包是否有残余

shell 复制代码
dpkg -l | grep docker

使用 purge 清除配置文件

shell 复制代码
sudo apt-get purge docker-ce

2. 更新索引包

首先确保您的系统是最新的,以避免潜在的兼容性问题。

bash 复制代码
sudo apt update
sudo apt upgrade -y

3. 安装使用 HTTPS 传输的软件包

Docker 需要使用 HTTPS 来保证传输的安全性,因此需要安装相关的软件包。

bash 复制代码
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

4. 添加软件源的 GPG 密钥

为了确保下载的软件包的安全性,需要添加 Docker 官方的 GPG 密钥。您可以选择使用不同的镜像源:

中科大源

bash 复制代码
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

阿里云源

bash 复制代码
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

官方源

bash 复制代码
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

注意:选择一个镜像源即可,无需同时添加多个源。

5. 向 sources.list 中添加 Docker 软件源

根据您选择的镜像源,执行相应的命令将 Docker 仓库添加到 APT 源列表中。

中科大源

bash 复制代码
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

阿里源

bash 复制代码
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

官方源

bash 复制代码
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

说明:

  • $(lsb_release -cs) 会自动获取您的 Ubuntu 版本代号(例如 focal)。
  • stable 表示使用 Docker 的稳定版本仓库。

6. 再次更新索引包

添加完新的 Docker 仓库后,需要再次更新 APT 包索引。

bash 复制代码
sudo apt-get update

7. 查看 Docker 版本

在安装 Docker 之前,您可以查看可用的 Docker 版本。

bash 复制代码
apt-cache madison docker-ce

这将显示所有可用的 Docker 版本及其详细信息。

8. 安装指定版本

您可以选择安装最新版本的 Docker,或者安装指定的 Docker 版本。

安装最新版本

bash 复制代码
sudo apt-get install docker-ce

安装指定版本

首先,使用之前的 apt-cache madison docker-ce 命令查看可用版本,然后选择一个版本进行安装。例如:

bash 复制代码
sudo apt-get install docker-ce=18.06.3~ce~3-0~ubuntu

说明 :将 18.06.3~ce~3-0~ubuntu 替换为您选择的具体版本号。

9. 启动后台服务

安装完成后,启动 Docker 服务。

bash 复制代码
sudo service docker start

或者使用 systemctl 命令:

bash 复制代码
sudo systemctl start docker

10. 查看 Docker 版本信息

确认 Docker 已成功安装并运行。

bash 复制代码
docker version

这将显示 Docker 客户端和服务器的版本信息。

11. 镜像加速

为了加快 Docker 镜像的下载速度,尤其是在中国大陆用户,可以配置 Docker 使用国内的镜像加速器。新版的 Docker 使用 /etc/docker/daemon.json 来配置守护进程。

配置镜像加速

  1. 创建或编辑 /etc/docker/daemon.json 文件

    bash 复制代码
    sudo nano /etc/docker/daemon.json
  2. 添加以下内容

    以 Docker 中国官方加速器为例:

    json 复制代码
    {
        "registry-mirrors": ["https://docker.1panel.live"]
    }

    您也可以选择其他加速器,例如阿里云:

    json 复制代码
    {
        "registry-mirrors": ["https://<your-accelerator-url>"]
    }
  3. 保存并关闭文件 (在 Nano 中,按 Ctrl + O 保存,Ctrl + X 退出)

  4. 重启 Docker 服务使配置生效

    bash 复制代码
    sudo service docker restart

    或者使用 systemctl 命令:

    bash 复制代码
    sudo systemctl restart docker

12. 添加当前用户到 Docker 组(可选)

默认情况下,运行 Docker 命令需要 sudo 权限。为了简化操作,您可以将当前用户添加到 docker 组中,从而无需每次都使用 sudo。

创建 docker 组

bash 复制代码
sudo groupadd docker

将当前用户加入 docker 组

bash 复制代码
sudo usermod -aG docker $USER

检查用户是否成功加入 docker 组

bash 复制代码
cat /etc/group | grep docker

您应该会看到类似如下的输出,显示您的用户名在 docker 组中:

bash 复制代码
docker:x:999:yourusername

重启 Docker 服务

bash 复制代码
sudo systemctl restart docker

重新登录或重启系统

为了使组成员资格生效,您需要重新登录或重启系统。

总结

通过以上步骤,您已经成功在 Ubuntu 系统上卸载旧版本 Docker、安装最新版本 Docker,并进行了必要的配置,如镜像加速和用户权限设置。现在,您可以开始使用 Docker 进行容器化开发和部署了。

常见问题与解决方案:

  • Docker 无法启动 :检查 Docker 服务状态,确保服务正在运行。使用 sudo systemctl status docker 查看服务状态。
  • 权限不足 :确保您已将当前用户添加到 docker 组,并已重新登录。
  • 镜像下载缓慢:配置 Docker 镜像加速器,以提高下载速度。

如果在安装或配置过程中遇到任何问题,欢迎在评论区留言或参考 Docker 官方文档 获取更多帮助。

相关推荐
阿钱真强道5 小时前
22 嵌入式操作系统 | 串口命令行调试(socat / stty / printf / hexdump)
ubuntu·cmake·uci·ubus·libubox
顺顺 尼5 小时前
linux 进程信号(上)
linux·c++·算法
niuTaylor6 小时前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
无序的浪6 小时前
测试博客-基于微服务的在线判题系统
java·spring cloud·docker·微服务·测试·在线判题
傲世仙尊7 小时前
信号量环形队列与线程池起步-把临界资源拆成很多份
linux
Huangjin007_7 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
ShineWinsu7 小时前
对于ProtoBuffer:ProtoBuffer的介绍以及安装
linux·网络·google·协议·序列化·反序列化·protobuffer
FlightYe8 小时前
视界原理之2D视频(二):视频文件里有什么
android·linux·网络·c++·ffmpeg·音视频·aac
GeW10 小时前
从代码到共识:技术突围如何映照大国相处之道
linux
溜达的大象10 小时前
极空间部署Traggo时间追踪工具:Docker安装、标签管理与cpolar远程访问
运维·docker·容器