Docker 笔记(九)--离线安装

背景

内部网络安装Docker,安装步骤如下

参考

  1. Docker官方x86_64下载网址
  2. Docker官方arm64下载网址
  3. Docker-compose Github下载

环境

Ubuntu24.04

下载

以docker 24.0.9 x86_64和docker-compose-linux-x86_64 为例

  1. https://download.docker.com/linux/static/stable/aarch64/docker-24.0.9.tgz
  2. https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-linux-x86_64

准备

  1. 预先在联网服务器下载Ubuntu24.04需要的iptables
bash 复制代码
mkdir docker-offline-deps-ubuntu24 && cd docker-offline-deps-ubuntu24

apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances iptables | grep "^\w" | sort -u)
  1. 下载的包
bash 复制代码
root@tsx:/public/software/docker-offline-deps-ubuntu24# ll
total 3944
drwxr-xr-x 2 root root    4096 Aug 24 08:24 ./
drwxr-xr-x 4 root root      56 Aug 24 08:24 ../
-rw-r--r-- 1 root root   51014 Feb 12  2026 gcc-14-base_14.2.0-4ubuntu2~24.04.1_amd64.deb
-rw-r--r-- 1 root root  381328 Apr  8  2024 iptables_1.8.10-3ubuntu2_amd64.deb
-rw-r--r-- 1 root root 3262434 Jul 27 12:28 libc6_2.39-0ubuntu8.8_amd64.deb
-rw-r--r-- 1 root root   78392 Feb 12  2026 libgcc-s1_14.2.0-4ubuntu2~24.04.1_amd64.deb
-rw-r--r-- 1 root root   23342 Apr  8  2024 libip4tc2_1.8.10-3ubuntu2_amd64.deb
-rw-r--r-- 1 root root   23732 Apr  8  2024 libip6tc2_1.8.10-3ubuntu2_amd64.deb
-rw-r--r-- 1 root root   12272 Apr  8  2024 libmnl0_1.0.5-2build1_amd64.deb
-rw-r--r-- 1 root root   45218 Apr  8  2024 libnetfilter-conntrack3_1.0.9-6build1_amd64.deb
-rw-r--r-- 1 root root   14810 Apr  8  2024 libnfnetlink0_1.0.2-2build1_amd64.deb
-rw-r--r-- 1 root root   65986 Apr  8  2024 libnftnl11_1.2.6-2build1_amd64.deb
-rw-r--r-- 1 root root   35704 Apr  8  2024 libxtables12_1.8.10-3ubuntu2_amd64.deb
-rw-r--r-- 1 root root   13112 Nov  6  2022 netbase_6.4_all.deb
  1. 打包
bash 复制代码
tar -zcvf docker-offline-deps-ubuntu24.tgz docker-offline-deps-ubuntu24

安装

上传

bash 复制代码
root@tsx:/public/software/docker# ls
docker-24.0.9.tgz  docker-compose-linux-x86_64 docker-offline-deps-ubuntu24.tgz

解压

bash 复制代码
root@tsx:/public/software/docker# tar -zxvf docker-24.0.9.tgz
bash 复制代码
root@tsx:/public/software/docker# tree
.
├── docker
│   ├── containerd
│   ├── containerd-shim-runc-v2
│   ├── ctr
│   ├── docker
│   ├── docker-init
│   ├── docker-proxy
│   ├── dockerd
│   └── runc
├── docker-offline-deps-ubuntu24.tgz
├── docker-24.0.9.tgz
└── docker-compose-linux-x86_64

2 directories, 10 files

部署

  1. 拷贝docker文件
bash 复制代码
cp docker/* /usr/bin/
cp docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x docker-compose
  1. 解压安装iptables
bash 复制代码
tar -zxvf docker-offline-deps-ubuntu24.tgz
  1. 安装iptables
bash 复制代码
dpkg -i *.deb

验证

bash 复制代码
root@tsx:/public/software/docker# docker version
Client:
 Version:           24.0.9
 API version:       1.43
 Go version:        go1.20.13
 Git commit:        2936816
 Built:             Thu Feb  1 00:47:46 2024
 OS/Arch:           linux/amd64
 Context:           default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
bash 复制代码
root@tsx:/public/software/docker# docker-compose version
Docker Compose version v2.24.7
bash 复制代码
root@tsx:/public/software/docker-offline-deps-ubuntu24# iptables --version
iptables v1.8.10 (nf_tables)

配置

bash 复制代码
sudo vim /usr/lib/systemd/system/docker.service
  1. 简化版
bash 复制代码
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
# 老系统,注释以下选项
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
  1. 完整版
  • docker.service
bash 复制代码
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service containerd.service
Wants=network-online.target
# 注意,有两个前置服务(也可以注释取消)
Requires=docker.socket containerd.service

[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=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
  • docker.socket
bash 复制代码
vim /usr/lib/systemd/system/docker.socket
bash 复制代码
[Unit]
Description=Docker Socket for the API

[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=root

[Install]
WantedBy=sockets.target
  • containerd.service
bash 复制代码
/usr/lib/systemd/system/containerd.service 
bash 复制代码
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/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

启动

  1. 简化版
bash 复制代码
# 重新加载systemd配置
systemctl daemon-reload

# 启动Docker服务
systemctl start docker

# 设置Docker开机自启
systemctl enable docker
  1. 完整版
bash 复制代码
# 重新加载systemd配置
systemctl daemon-reload

# 启动docker.socket
systemctl enable --now docker.socket

# 启动containerd.service
systemctl enable --now containerd.service

# 启动Docker服务
systemctl start docker 

# 设置Docker开机自启
systemctl enable docker
  1. 查看服务状态
bash 复制代码
systemctl status docker

● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-08-24 08:49:14 UTC; 23s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 8228 (dockerd)
      Tasks: 28
     Memory: 34.6M (peak: 35.8M)
        CPU: 324ms
     CGroup: /system.slice/docker.service
             └─8228 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
相关推荐
dazhong20123 小时前
Docker 进阶篇(二) Docker Compose 部署 Nginx 实践
nginx·docker·容器
码--到成功3 小时前
Docker、Kubernetes安装系列 一
docker·容器·kubernetes
是乐乐啊呀3 小时前
常用破解软件
容器
bruce1284 小时前
K8s Pod 异常重启排查
云原生·容器·kubernetes
FoldWinCard5 小时前
基于k8s高可用web集群
前端·容器·kubernetes
cui_hao_nan5 小时前
Docker学习3
docker·容器
玉&心6 小时前
在Docker中部署前端和后端的实现
运维·docker·容器
wdfk_prog6 小时前
Docker 常用语法与命令:CLI、Dockerfile 与 Compose 速查
运维·docker·容器
无敌糖果6 小时前
K8S network namespace错误分析
docker·容器·kubernetes