在 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 官方文档 获取更多帮助。

相关推荐
wkd_00712 分钟前
【C++读写.xlsx文件】OpenXLSX开源库在 Ubuntu 18.04 的编译、交叉编译与使用教程
linux·ubuntu·openxlsx·c++写xlsx·开源库编译
zhy2956315 分钟前
【LIBS】开源库编译之OSQP
ubuntu·cmake·osqp·libs
阿里嘎多学长1 小时前
centos怎么安装haproxy
linux·运维·服务器·centos
轻口味1 小时前
配置TypeScript:tsconfig.json详解
ubuntu·typescript·json
七灵微1 小时前
进程与线程以及如何查看
linux·系统架构
无为扫地僧2 小时前
二、windows环境下vscode使用wsl教程
linux
中东大鹅2 小时前
分布式数据存储基础与HDFS操作实践
大数据·linux·hadoop·分布式·hbase
yuanbenshidiaos2 小时前
linux-----进程及基本操作
linux·服务器·网络
关关钧2 小时前
【Linux】处理用户输入
linux·运维·服务器
small陀螺2 小时前
linux应用编程(点亮LED)
linux·运维·服务器