Ubuntu24离线安装docker

一、为什么要离线安装docker

使用二进制发行包离线安装Docker的主要原因是针对特定行业的云平台,如地方政务云、教育云或其他特种行业云平台,这些平台上的云主机往往由于安全政策或网络隔离的要求,无法直接访问互联网。因此,通过下载Docker的二进制发行包并进行离线安装,可以确保在这些受限环境中顺利部署Docker,同时满足安全性和合规性的需求。具体来说,这种方式可以带来以下几个方面的优势:

  • 增强安全性:避免了云主机直接与互联网通信,减少了潜在的安全威胁,符合高安全标准的行业要求。
  • 确保合规性:对于有严格网络监管要求的行业,如政务和教育领域,离线安装可以更好地遵守相关法律法规和行业规范。
  • 控制版本一致性:通过手动下载和分发特定版本的Docker,可以在多个云主机上保持软件版本的一致性,便于管理和维护。
  • 提高灵活性:在没有互联网连接的环境中,离线安装提供了灵活的解决方案,使得Docker的部署不受网络条件的限制。

二、安装部署环境

  • 系统环境:Ubuntu24.04 LTS server
  • 软件版本:Docker 27.3.1

注意: 该方法理论适用于所有系统为64位、系统内核版本为 2.6.32-431 以及更高版本的Linux系统,本文使用的机器CPU的X86架构,如果您使用的是ARM64(aarch64)架构CPU,将docker软件包更换为ARM64(aarch64)架构软件包即可。

目前作者安装实施过的操作系统包括:Ubuntu 18.04 LTS server、Ubuntu 20.04 LTS server、Ubuntu 22.04 LTS server、Ubuntu24.04 LTS server、RockLinux8、RockLinux9、CentOS7、CentOS8、OpenEuler22.03 LTS 、OpenEuler24.03 LTS、AnolisOS8、Kylinos V10 server、UOS V20 server(1050a/1050e/1060a/1060e/1070a/1070e)

三、安装步骤

1、下载 docker 二进制包并解压

# docker 官方下载链接,如果你所在网络环境下载速度慢可以使用其他国内镜像源下载
wget -c https://download.docker.com/linux/static/stable/x86_64/docker-27.3.1.tgz
# 国内镜像源
#wget -c https://mirrors.ustc.edu.cn/docker-ce/linux/static/stable/x86_64/docker-27.3.1.tgz

tar -xvf docker-27.3.1.tgz -C /usr/local/

2、创建进程管理文件

cat > /etc/systemd/system/containerd.service << EOF
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target
[Service]
ExecStart=/usr/local/docker/containerd
Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
TasksMax=infinity
OOMScoreAdjust=-999
[Install]
WantedBy=multi-user.target
EOF

cat > /etc/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
Requires=docker.socket 
[Service]
Environment="PATH=/usr/local/docker:/usr/sbin:\${PATH}"
Type=notify
ExecStart=/usr/local/docker/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP 
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
OOMScoreAdjust=-500
[Install]
WantedBy=multi-user.target
EOF

cat > /etc/systemd/system/docker.socket << EOF
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
[Install]
WantedBy=sockets.target
EOF

3、创建docker配置文件

mkdir -p /etc/docker/
cat >/etc/docker/daemon.json<<EOF
{
    "userland-proxy": true,
    "userland-proxy-path": "/usr/local/docker/docker-proxy",
    "dns": [
        "114.114.114.114",
        "8.8.8.8"
    ],
    "bip" : "172.48.94.1/24",
    "data-root":"/mnt/docker",
    "log-driver":"json-file",
    "log-opts": {
        "max-size":"100m", 
        "max-file":"3"
    }
}
EOF

注意

  1. userland-proxy、userland-proxy-path 两项内容必须有
  2. dns:设置容器内网络使用的DNS地址,可根据需要修改
  3. bip:docker网卡的IP地址,也是容器默认网络,可根据需要修改,要尽量避免使用网络中已经使用的网段,否则可能会导致部分或者全部用户无法访问容器内的业务。
  4. data-root:容器运行环境、镜像、网络、数据卷等相关信息的存放位置。
  5. log-driver、log-opts:日志相关的配置项,更具需要配置。

4、配置环境变量

cat >/etc/profile.d/docker.sh<< EOF
#/bin/bash
export PATH=/usr/local/docker:\${PATH}
EOF
ln -s /usr/local/docker/runc /usr/local/bin/runc
bash

5、添加 docker 用户和用户组

useradd -r -s /sbin/nologin  -M  docker 
usermod -a -G docker root

6、启动 docker 服务

systemctl daemon-reload
systemctl enable containerd docker 
systemctl restart containerd docker

本文原始发布地址:运维栈-点击跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值