在离线的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
相关推荐
十年一梦实验室2 小时前
【Gemini & Nano banana】根据(F-35隐身战机)机器人与自动化产线机械、电气、软件及整体布局方案设计绘制综合方案图
运维·机器人·自动化
FS_Marking2 小时前
10G CWDM/DWDM SFP+光模块选购指南
运维·网络
Totoro-wen2 小时前
H20*8卡服务器装机指南
运维·服务器
盘古信息IMS2 小时前
2026年WMS系统选型指南:制造企业如何构建高度适配的智能仓储中枢?
运维·制造·devops
Cyber4K2 小时前
【Nginx专项】基础入门篇-访问限制及访问控制
linux·运维·服务器·nginx
b***25112 小时前
锂电池自动化生产线的精密协同与效能提升
运维·自动化
云飞云共享云桌面2 小时前
制造研发降本新思路:云飞云共享云桌面集群如何将软硬件利用率提升至200%?
运维·服务器·网络·人工智能·3d·制造
爱喝水的鱼丶2 小时前
SAP-ABAP:深入浅出 SAP AFVC 表:生产订单工序的核心数据仓库
运维·服务器·数据仓库·sap·abap·pp
高斯的手稿08012 小时前
树莓派上更换镜像源的方法
linux·运维·windows