Ubuntu 安装 Docker

1 Ubuntu 安装 Docker

本节主要介绍在系统 Ubuntu24.04 上安装 Docker 的方法,本文要安装的 Docker 是社区版本,Docker Engine-Community 支持 x86_64(或 amd64)、arm64 等架构。

Docker Engine-Community 支持 Ubuntu16.04、Ubuntu18.04、非 LTS 版本 Ubuntu18.10 和 Ubuntu19.04 以及后续更新的 Ubuntu 版本,如Ubuntu20.04、Ubuntu22.04 和 Ubuntu24.04 等。

** 前提准备:**在安装 Docker Engine-Community 之前,需要先检查 Ubuntu 的架构和版本,检测 Ubuntu 系统是否支持安装 Docker Engine-Community。具体操作命令如下所示。

shell 复制代码
leolei@Jiaolong:~$ hostnamectl
 Static hostname: Jiaolong
       Icon name: computer-laptop
         Chassis: laptop 💻
      Machine ID: b56ea6e94e144e75bcf6b6a598ed7661
         Boot ID: ed07a6d1241b45ae9fc930e5104d63c8
Operating System: Ubuntu 24.04.3 LTS              
          Kernel: Linux 6.14.0-36-generic
    Architecture: x86-64
 Hardware Vendor: MECHREVO
  Hardware Model: Jiaolong Series MRID6
Firmware Version: MRID6_23_P_V33
   Firmware Date: Sat 2023-09-23
    Firmware Age: 2y 2month 1w 5d 

通过观察屏幕输出的信息,可以了解到该 Ubuntu 系统的架构为 x86-64,Ubuntu 版本为长期支持版 24.04。因此,该 Ubuntu 系统可以安装 Docker Engine-Community。

1.1 Docker Engine-Community 的安装

本文是通过官方安装脚本进行自动安装。具体的安装方法如下所示。

  1. 下载 Docker 官方安装脚本 get-docker.sh

    shell 复制代码
    # 进入当前用户的下载目录 Downloads
    cd ~/Downloads
    # 检查是否安装 curl 命令
    apt list curl --installed
    # 若屏幕输出 Listing... Done 的内容,则表示为安装 curl 命令,请输入如下命令进行安装。安装好 curl 之后,请通过命令 apt list curl --installed 再检查一下。
    sudo apt install curl
    # 下载 Docker 安装脚本,一次执行可能不成功,屏幕输出 curl: (35) Recv failure: Connection reset by peer 的信息,是由服务器重置了连接。可以多次支持,能够下载成功。
    curl -fsSL https://get.docker.com -o get-docker.sh
  2. 运行 Docker 官方脚本。

    当我完成 get-docker.sh 脚本的下载后,通过命令执行该安装脚本。具体操作如下所示。

    shell 复制代码
    leolei@Jiaolong:~/Downloads$ ls -l | grep get-docker.sh 
    -rw-rw-r-- 1 leolei leolei      21013 Dec  4 17:31 get-docker.sh
    
    leolei@Jiaolong:~/Downloads$ sudo sh get-docker.sh 
    # Executing docker install script, commit: 7d96bd3c5235ab2121bcb855dd7b3f3f37128ed4
    + sh -c apt-get -qq update >/dev/null
    + sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install ca-certificates curl >/dev/null
    + sh -c install -m 0755 -d /etc/apt/keyrings
    + sh -c curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" -o /etc/apt/keyrings/docker.asc
    + sh -c chmod a+r /etc/apt/keyrings/docker.asc
    + sh -c echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu noble stable" > /etc/apt/sources.list.d/docker.list
    + sh -c apt-get -qq update >/dev/null
    + sh -c DEBIAN_FRONTEND=noninteractive apt-get -y -qq install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin docker-model-plugin >/dev/null
    + sh -c docker version
    Client: Docker Engine - Community
     Version:           29.1.2
     API version:       1.52
     Go version:        go1.25.5
     Git commit:        890dcca
     Built:             Tue Dec  2 21:55:19 2025
     OS/Arch:           linux/amd64
     Context:           default
    
    Server: Docker Engine - Community
     Engine:
      Version:          29.1.2
      API version:      1.52 (minimum version 1.44)
      Go version:       go1.25.5
      Git commit:       de45c2a
      Built:            Tue Dec  2 21:55:19 2025
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          v2.2.0
      GitCommit:        1c4457e00facac03ce1d75f7b6777a7a851e5c41
     runc:
      Version:          1.3.4
      GitCommit:        v1.3.4-0-gd6d73eb8
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    
    ================================================================================
    
    To run Docker as a non-privileged user, consider setting up the
    Docker daemon in rootless mode for your user:
    
        dockerd-rootless-setuptool.sh install
    
    Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
    
    
    To run the Docker daemon as a fully privileged service, but granting non-root
    users access, refer to https://docs.docker.com/go/daemon-access/
    
    WARNING: Access to the remote API on a privileged Docker daemon is equivalent
             to root access on the host. Refer to the 'Docker daemon attack surface'
             documentation for details: https://docs.docker.com/go/attack-surface/
    
    ================================================================================

    通过命令ls -l 查看安装脚本 get-docker.sh 的全线,发现该脚本没有执行权限,所以需要通过 sh 运行该脚本。然后执行 Docker 的安装,安装过程中发现,Docker 总是安装失败是应为 Docker 网站是境外网站,下载不稳定。因此我不推荐使用该方法安装 Docker,建议大家使用国内镜像原进行安装 Docker。

  3. 启动服务并设置 Docker 随系统启动。

    Docker 安装完成后,需要启动 Docker 服务才能使用,具体的操作方法如下所示。

    shell 复制代码
    # 启动 Docker 服务
    leolei@Jiaolong:~/Downloads$ sudo systemctl start docker
    
    # 设置 Docker 服务随系统启动
    leolei@Jiaolong:~/Downloads$ sudo systemctl enable docker
    Synchronizing state of docker.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
    Executing: /usr/lib/systemd/systemd-sysv-install enable docker
    
    # 查看 Docker 服务的状态
    leolei@Jiaolong:~/Downloads$ sudo systemctl status docker
    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: e>
         Active: active (running) since Thu 2025-12-04 17:53:31 CST; 31min ago
    TriggeredBy: ● docker.socket
           Docs: https://docs.docker.com
       Main PID: 14202 (dockerd)
          Tasks: 21
         Memory: 27.9M (peak: 32.8M)
            CPU: 270ms
         CGroup: /system.slice/docker.service
                 └─14202 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/con>
    
    Dec 04 17:53:30 Jiaolong dockerd[14202]: time="2025-12-04T17:53:30.874029939+08>
    Dec 04 17:53:30 Jiaolong dockerd[14202]: time="2025-12-04T17:53:30.925508519+08>
    Dec 04 17:53:30 Jiaolong dockerd[14202]: time="2025-12-04T17:53:30.940164540+08>
    Dec 04 17:53:31 Jiaolong dockerd[14202]: time="2025-12-04T17:53:31.127906157+08>
    Dec 04 17:53:31 Jiaolong dockerd[14202]: time="2025-12-04T17:53:31.131659759+08>
    Dec 04 17:53:31 Jiaolong dockerd[14202]: time="2025-12-04T17:53:31.131722046+08>
    Dec 04 17:53:31 Jiaolong dockerd[14202]: time="2025-12-04T17:53:31.219102433+08>
    Dec 04 17:53:31 Jiaolong dockerd[14202]: time="2025-12-04T17:53:31.222050216+08>
    Dec 04 17:53:31 Jiaolong dockerd[14202]: time="2025-12-04T17:53:31.222071155+08>
    Dec 04 17:53:31 Jiaolong systemd[1]: Started docker.service - Docker Applicatio>

    根据屏幕的输出信息可以知道 Docker 已成功启动。至此,Docker 的安装到此结束。

1.2 Docker 镜像加速

在国内拉取 Docker Hub 的镜像有时会遇到困难,可能会拉取缓慢或拉取失败,此时,我们可以配置国内的镜像加速器加速,例如科大镜像、阿里云等。本文采用的是阿里云镜像加速器,阿里云镜像获取地址为https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后,你就可以看到你的专属镜像加速器了。如下图所示。

配置阿里云镜像加速器的具体操作如下所示。

  1. 查看配置文件是否有文件 daemon.json。

    shell 复制代码
    # 进入到配置文件目录下 /etc/docker
    cd /etc/docker
    # 查看该目录包含的文件是否有 daemon.json
    leolei@Jiaolong:/etc/docker$ ls -l

    从屏幕的输出信息可以知道,该文件下没有文件 daemon.json。

  2. 添加文件 daemon.json。

    shell 复制代码
    # 添加文件及其内容
    leolei@Jiaolong:/etc/docker$ sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://******.mirror.aliyuncs.com"]
    }
    EOF
    [sudo] password for leolei: 
    {
      "registry-mirrors": ["https://*******.mirror.aliyuncs.com"]
    }
    # 查看文件是否创建成功
    leolei@Jiaolong:/etc/docker$ ls -l
    total 4
    -rw-r--r-- 1 root root 67 Dec  4 18:50 daemon.json
    # 查看文件的内容是否写入成功
    leolei@Jiaolong:/etc/docker$ cat daemon.json 
    {
      "registry-mirrors": ["https://*******.mirror.aliyuncs.com"]
    }

    根据对文件的检查命令,可以知道阿里云镜像加速器配置成功。

  3. 重载 daemon 和重启 Docker 服务。

    shell 复制代码
    leolei@Jiaolong:/etc/docker$ sudo systemctl daemon-reload 
    leolei@Jiaolong:/etc/docker$ sudo systemctl restart docker
    leolei@Jiaolong:/etc/docker$ sudo systemctl status docker
    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: e>
         Active: active (running) since Thu 2025-12-04 18:52:20 CST; 11s ago
    TriggeredBy: ● docker.socket
           Docs: https://docs.docker.com
       Main PID: 20446 (dockerd)
          Tasks: 19
         Memory: 24.9M (peak: 28.8M)
            CPU: 203ms
         CGroup: /system.slice/docker.service
                 └─20446 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/con>
    
    Dec 04 18:52:19 Jiaolong dockerd[20446]: time="2025-12-04T18:52:19.575650904+08>
    Dec 04 18:52:19 Jiaolong dockerd[20446]: time="2025-12-04T18:52:19.602434624+08>
    Dec 04 18:52:19 Jiaolong dockerd[20446]: time="2025-12-04T18:52:19.621490813+08>
    Dec 04 18:52:20 Jiaolong dockerd[20446]: time="2025-12-04T18:52:20.234773287+08>
    Dec 04 18:52:20 Jiaolong dockerd[20446]: time="2025-12-04T18:52:20.239063210+08>
    Dec 04 18:52:20 Jiaolong dockerd[20446]: time="2025-12-04T18:52:20.239090962+08>
    Dec 04 18:52:20 Jiaolong dockerd[20446]: time="2025-12-04T18:52:20.241152157+08>
    Dec 04 18:52:20 Jiaolong dockerd[20446]: time="2025-12-04T18:52:20.244161104+08>
    Dec 04 18:52:20 Jiaolong dockerd[20446]: time="2025-12-04T18:52:20.244187063+08>
    Dec 04 18:52:20 Jiaolong systemd[1]: Started docker.service - Docker Applicatio>

    根据屏幕的输出信息可以知道,阿里云的镜像加速器配置成功且启动成功。

至此,Docker 的镜像加速起配置完成。

相关推荐
梦仔生信进阶1 小时前
【Linux】使用小细节之删除软链接的正确方法Linux删除软连接的正确姿势:别让一个斜杠毁掉你的心血!
linux
_lst_1 小时前
linux进程控制
linux·运维·服务器
可可苏饼干1 小时前
Docker命令与知识点归纳
运维·学习·docker·容器
YongCheng_Liang2 小时前
从零搭建 NFS 服务:文件共享部署与使用全指南
linux·运维·服务器
大聪明-PLUS2 小时前
C++中的复制语义和资源管理
linux·嵌入式·arm·smarc
杰 .2 小时前
Linux gcc/g++
linux·服务器
_dindong2 小时前
Linux网络编程:I/O多路转接之epoll
linux·服务器·网络·sql·mysql
pingzhuyan2 小时前
linux常规(shell脚本)-启动java程序-实现快捷git拉取,maven打包,nohup发布(无dockerfile版)
java·linux·git·maven·shell
幸福右手牵2 小时前
交换机的层数的含义(二层、三层)
linux·服务器·网络·智能路由器