Ubuntu安装Docker和Docker Compose最新版保姆级教程

Ubuntu 安装 Docker 和 Docker Compose 最新版保姆级教程

官网地址:

安装 Docker:https://docs.docker.com/engine/install/ubuntu/

安装 Docker Compose:https://docs.docker.com/compose/install/standalone/

注:以下大部分内容来源于官网

Docker 篇

要安装 Docker 引擎,您需要以下 Ubuntu 版本之一的 64 位版本:

  • Ubuntu Oracular 24.10
  • Ubuntu Noble 24.04 (LTS)
  • Ubuntu Jammy 22.04 (LTS)

适用于 Ubuntu 的 Docker 引擎与 x86_64(或 amd64)、armhf、arm64、s390x 和 ppc64le (ppc64el) 架构兼容。

注:x86_64 和 AMD64 是指同一种 64 位处理器架构,只是命名不同。x86_64 是更通用的名称,而 AMD64 则是 AMD 公司对其 64 位处理器架构的命名。

1.卸载旧版本

在安装 Docker Engine 之前,您需要卸载任何冲突的软件包。

您的 Linux 发行版可能会提供非官方的 Docker 包,这可能与 Docker 提供的官方包发生冲突。在安装正式版 Docker Engine 之前,必须先卸载这些包。

要卸载的非官方软件包是:

  • docker.io
  • docker-compose
  • docker-compose-v2
  • docker-doc
  • podman-docker

此外,Docker Engine 依赖于 containerdrunc。Docker Engine 将这些依赖项捆绑为一个捆绑包:containerd.io。如果您之前安装过 containerdrunc,请卸载它们以避免与 Docker Engine 捆绑的版本发生冲突。

运行以下命令以卸载所有冲突的包:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

apt-get 可能会报告您没有安装这些软件包。

2.安装 Docker

方法 1:使用 apt 存储库安装

在新主机上首次安装 Docker Engine 之前,您需要设置 Docker apt 存储库。之后,您可以从存储库安装和更新 Docker。

  1. 设置 Docker 的 apt 存储库。

    # 添加Docker的官方GPG密钥:
    sudo apt-get update
    sudo apt-get install ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    
    # 将存储库添加到APT源:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update
    
  2. 安装 Docker 包。

    最新版

    要安装最新版本,请运行:

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

    docker-buildx-plugin docker-compose-plugin 为插件,可以主要下载这几个包(但是经过我的测试,插件还是被安装了):

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

    具体版本

    要安装特定版本的 Docker 引擎,请首先在存储库中列出可用版本:

    # List the available versions:
    apt-cache madison docker-ce | awk '{ print $3 }'
    
    5:28.3.3-1~ubuntu.24.04~noble
    5:28.3.2-1~ubuntu.24.04~noble
    ...
    

    选择所需的版本并安装:

    VERSION_STRING=5:28.3.3-1~ubuntu.24.04~noble
    
    sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
    
方法 2:使用离线包安装

如果您无法使用 Docker 的 apt 存储库来安装 Docker Engine,您可以下载版本的 deb 文件并手动安装。每次升级 Docker Engine 时,都需要下载一个新文件。

  1. 转到 https://download.docker.com/linux/ubuntu/dists/

  2. 在列表中选择您的 Ubuntu 版本。

  3. 转到 pool/stable/ 并选择适用的架构(amd64armhfarm64s390x)。

  4. 下载 Docker 引擎、CLI、containerd 和 Docker Compose 包的以下 deb 文件:

    • containerd.io_<version>_<arch>.deb
    • docker-ce_<version>_<arch>.deb
    • docker-ce-cli_<version>_<arch>.deb
    • docker-buildx-plugin_<version>_<arch>.deb
    • docker-compose-plugin_<version>_<arch>.deb

    补充:

    查看系统架构与版本

    root@ubuntuserver:~# arch 
    x86_64
    
    root@ubuntuserver:~# lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 22.04.5 LTS
    Release:        22.04
    Codename:       jammy
    
    root@ubuntuserver:~# lsb_release -cs
    jammy
    
    root@ubuntuserver:~# cat /etc/os-release 
    PRETTY_NAME="Ubuntu 22.04.5 LTS"
    NAME="Ubuntu"
    VERSION_ID="22.04"
    VERSION="22.04.5 LTS (Jammy Jellyfish)"
    VERSION_CODENAME=jammy
    ID=ubuntu
    ID_LIKE=debian
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    UBUNTU_CODENAME=jammy
    

    其中,我的架构和版本便是 x86_64(amd64)和 jammy。

    所以我的地址便是:https://download.docker.com/linux/ubuntu/dists/jammy/pool/stable/amd64/

    注:x86_64 和 AMD64 是指同一种 64 位处理器架构,只是命名不同。x86_64 是更通用的名称,而 AMD64 则是 AMD 公司对其 64 位处理器架构的命名。

  5. 安装 .deb 包。将以下示例中的路径更新到下载 Docker 包的位置。

    sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
    ./docker-ce_<version>_<arch>.deb \
    ./docker-ce-cli_<version>_<arch>.deb \
    ./docker-buildx-plugin_<version>_<arch>.deb \
    ./docker-compose-plugin_<version>_<arch>.deb
    

    Docker 守护程序自动启动。

注:如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 test 用户加进去:

apt install docker-ce-rootless-extras
sudo usermod -aG docker test

3.配置daemon.json

镜像加速

编辑 Docker 配置文件 /etc/docker/daemon.json(不存在则创建):

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
  "registry-mirrors": [
    "https://docker.1panel.live",
    "https://docker.1ms.run",
    "https://dytt.online",
    "https://docker-0.unsee.tech",
    "https://lispy.org",
    "https://docker.xiaogenban1993.com",
    "https://666860.xyz",
    "https://hub.rat.dev",
    "https://docker.m.daocloud.io",
    "https://demo.52013120.xyz",
    "https://proxy.vvvv.ee",
    "https://registry.cyou",
    "https://mirror.ccs.tencentyun.com"
  ]
}
EOF
  • 重启 Docker

    sudo systemctl restart docker
    
  • 通过运行 hello-world 映像来验证安装是否成功:

    sudo docker run hello-world
    

    此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。

    您现在已成功安装并启动 Docker 引擎。

存储驱动

作用

  • 控制 Docker 如何存储容器和镜像的磁盘数据(如 overlay2aufszfs 等)。
  • 默认使用 overlay2(现代 Linux 内核推荐,性能好且稳定)。
{
  "storage-driver": "overlay2"
}

适用场景

  • 新部署的 Docker 环境(默认通常已是 overlay2)。
  • 旧系统可能默认使用 aufs(性能较差,建议迁移)。

验证

docker info | grep "Storage Driver"
日志限制

默认情况下 Docker 不会限制日志大小,可能导致磁盘被塞满(尤其是日志打印频繁的应用)。

以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘 (泪的教训):

cat > /etc/docker/daemon.json << EOF
{
    "log-driver": "json-file",
    # 限制容器日志文件大小(每个日志最大 20MB,保留 3 个轮转文件)。
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "userland-proxy": false,
    "ipv6": true,
    "fixed-cidr-v6": "fdb::/64",
    "experimental":true,
    "ip6tables":true
}
EOF
数据目录

作用

  • 修改 Docker 默认存储路径(如从 /var/lib/docker 迁移到 /data/docker)。
  • 适用于磁盘空间不足或需要分离存储的场景。
{
  "data-root": "/data/docker"
}

注意事项

  • 迁移前需停止 Docker 服务并备份数据:

    sudo systemctl stop docker
    sudo rsync -a /var/lib/docker/ /data/docker/
    
  • 修改配置后重启 Docker:

    sudo systemctl restart docker
    
默认网络配置

作用

  • 修改默认的 docker0 网桥 IP 地址(避免与内网冲突)。
  • 默认 docker0 使用 172.17.0.0/16,可自定义为其他私有地址(如 192.168.100.0/24)。
{
  "bip": "192.168.100.1/24"
}

注意事项

  • 修改后需重启 Docker,且已存在的容器网络可能受影响。
用户命名空间

作用

  • 增强安全性:将容器内的 root 用户映射到宿主机非特权用户(避免容器逃逸风险)。
  • 适用于多租户或生产环境。
{
  "userns-remap": "default"  # 或指定用户组(如 "dockremap")
}

操作步骤

  1. 创建用户和组:

    sudo useradd -r -s /bin/false dockremap
    sudo usermod -aG docker dockremap
    
  2. 修改 /etc/docker/daemon.json 并重启 Docker。

实时内核事件监控

作用

  • 允许 Docker 守护进程重启时保持容器运行(避免服务中断)。
  • 适用于高可用场景。
{
  "live-restore": true
}
最大并发下载数

作用

  • 限制同时拉取镜像的并发数(避免带宽占满或触发 API 限流)。
{
  "max-concurrent-downloads": 5
}
推荐配置

可以复制直接用

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "20m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "registry-mirrors": [
    "https://docker.1panel.live",
    "https://docker.1ms.run",
    "https://dytt.online",
    "https://docker-0.unsee.tech",
    "https://lispy.org",
    "https://docker.xiaogenban1993.com",
    "https://666860.xyz",
    "https://hub.rat.dev",
    "https://docker.m.daocloud.io",
    "https://demo.52013120.xyz",
    "https://proxy.vvvv.ee",
    "https://registry.cyou",
    "https://mirror.ccs.tencentyun.com"
  ],
  "max-concurrent-downloads": 5
}

4.卸载 Docker

  1. 卸载 Docker Engine、CLI、containerd 和 Docker Compose 包:

    sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
    
  2. 不会自动删除主机上的映像、容器、卷或自定义配置文件。要删除所有映像、容器和卷,请执行以下操作:

    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    sudo rm -rf /etc/docker
    
  3. 删除源列表和密钥环

    sudo rm /etc/apt/sources.list.d/docker.list
    sudo rm /etc/apt/keyrings/docker.asc
    

您必须手动删除任何编辑的配置文件。

Docker Compose 篇

1.安装 Docker Compose

方法 1:直接下载 V2(推荐)
  1. 下载二进制文件
# 获取最新版本号
VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -oP '"tag_name": "\K(v\d+\.\d+\.\d+)')
 
# 下载并安装
sudo curl -L "https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
  • 如果服务器连不上 GitHub,那就自己下载下来再上传到服务器上

    项目地址:https://github.com/docker/compose/releases

    sudo mv docker-compose-$(uname -s)-$(uname -m) /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    
  1. 创建软链接(可选)

如果希望使用 docker compose(V2 风格)而非 docker-compose

# Linux/macOS
sudo ln -s /usr/local/bin/docker-compose /usr/local/bin/docker compose
  • 验证

    docker compose version  # 应显示 V2 版本
    
方法 2:通过包管理器安装
# 安装 Docker Compose V2 插件(命令为 `docker compose`)
sudo apt-get update
sudo apt-get install -y docker-compose-plugin
 
# 验证
docker compose version

2.卸载 Docker Compose

  • 独立安装的 V2
sudo rm /usr/local/bin/docker-compose
sudo rm /usr/local/bin/docker compose  # 如果创建了软链接
  • 通过包管理器安装的 V2
sudo apt-get remove docker-compose-plugin

补充:

要检查 Compose 的安装位置,请使用:

docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值