在离线的Ubuntu机器中安装docker

在离线的Ubuntu机器中安装docker,具体如下:

1、在有网络的机器中下载docker压缩包

https://download.docker.com/linux/static/stable/x86_64/

复制代码
如下载:

2、拷贝到离线的机器中,然后解压这个包

bash 复制代码
tar -zxvf docker-28.5.1.tgz

3、移动docker中的文件到系统目录中

bash 复制代码
sudo cp docker/* /usr/bin/

4、授权

bash 复制代码
sudo chmod +x /usr/bin/docker*
sudo chmod +x /usr/bin/containerd*
sudo chmod +x /usr/bin/runc

5、创建 systemd 服务

当然也可以查看文件是否存

bash 复制代码
sudo cat /etc/systemd/system/docker.service
bash 复制代码
sudo vi /etc/systemd/system/docker.service

6、写入docker.service 文件内容

bash 复制代码
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target containerd.service
Requires=containerd.service

[Service]
Type=notify
ExecStart=/usr/bin/dockerd \
  --host=unix:///var/run/docker.sock \
  --exec-opt native.cgroupdriver=systemd \
  --log-driver=json-file \
  --log-opt max-size=100m \
  --log-opt max-file=3 \
  --storage-driver=overlay2

ExecReload=/bin/kill -s HUP $MAINPID
Restart=always
RestartSec=5
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

7、创建 containerd 服务

bash 复制代码
sudo vi /etc/systemd/system/containerd.service

写入内容

bash 复制代码
[Unit]
Description=containerd container runtime
After=network.target

[Service]
ExecStart=/usr/bin/containerd
Restart=always
Delegate=yes
KillMode=process

[Install]
WantedBy=multi-user.target

8、systemd 生效

bash 复制代码
sudo systemctl daemon-reexec
sudo systemctl daemon-reload

9、启动服务

bash 复制代码
sudo systemctl enable containerd
sudo systemctl enable docker

sudo systemctl start containerd
sudo systemctl start docker

10、查看安装

bash 复制代码
docker version
bash 复制代码
docker info

或是使用管理员验证

bash 复制代码
sudo docker version
sudo docker info

复制代码
其他内容:

Docker 实际是通过这个文件通信:/var/run/docker.sock

看权限:

ls -l /var/run/docker.sock

正常应该类似:

srw-rw---- 1 root docker ... docker.sock

👉 说明:

  • 属主:root
  • 属组:docker
  • 权限:660

👉 结论:
只有 root 或 docker 组用户才能访问


创建 docker 组(如果没有)

sudo groupadd docker

把当前用户加入 docker 组

sudo usermod -aG docker 用户名

👉 注意:

  • -aG 不能写错(否则会覆盖用户组)

权限生效

newgrp docker

查看权限

groups

复制代码
重启docker服务
bash 复制代码
sudo systemctl restart docker

再使用普通用户查看

docker version

docker info


优化内容(建议)

1️⃣ 配置 daemon.json

bash 复制代码
sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

推荐配置:

bash 复制代码
{
  "registry-mirrors": [],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "data-root": "/data/docker",
  "insecure-registries": [],
  "live-restore": true
}

👉 说明:

  • data-root:避免系统盘爆满(生产必做)
  • live-restore:docker重启不中断容器
  • log:防止日志撑爆磁盘

2️⃣ 创建数据目录

bash 复制代码
sudo mkdir -p /data/docker
sudo chmod 711 /data/docker

3️⃣ 非 root 用户使用 Docker

bash 复制代码
sudo groupadd docker
sudo usermod -aG docker $USER

生效:

bash 复制代码
newgrp docker

4️⃣ 防火墙 & 内核参数(关键)

bash 复制代码
sudo modprobe overlay
sudo modprobe br_netfilter
bash 复制代码
sudo vi /etc/sysctl.conf

添加:

bash 复制代码
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1

生效:

bash 复制代码
sudo sysctl -p
相关推荐
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
2601_961875243 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant