Docker在Linux中离线部署

获取部署包

按照个人需求,通过官方网站下载需要的字节压缩包,笔者主要是linux/x86_64,操作系统为Ubuntu 22.04

复制下载链接,在Linux进行下载,此处为docker-28.4.0.tgz

bash 复制代码
wget https://download.docker.com/linux/static/stable/x86_64/docker-28.4.0.tgz

安装过程

下载到本地系统后,在下载目录进行解压。

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

解压之后,内容如下:

bash 复制代码
drwxr-xr-x 2 ggcy ggcy     4096 Sep  4 05:05 ./
drwxr-x--- 4 ggcy ggcy     4096 Sep 21 02:34 ../
-rwxr-xr-x 1 ggcy ggcy 41451704 Sep  4 05:05 containerd*
-rwxr-xr-x 1 ggcy ggcy 14065848 Sep  4 05:05 containerd-shim-runc-v2*
-rwxr-xr-x 1 ggcy ggcy 21242040 Sep  4 05:05 ctr*
-rwxr-xr-x 1 ggcy ggcy 43556144 Sep  4 05:05 docker*
-rwxr-xr-x 1 ggcy ggcy   708456 Sep  4 05:05 docker-init*
-rwxr-xr-x 1 ggcy ggcy  2458085 Sep  4 05:05 docker-proxy*
-rwxr-xr-x 1 ggcy ggcy 79364736 Sep  4 05:05 dockerd*
-rwxr-xr-x 1 ggcy ggcy 18443272 Sep  4 05:05 runc*

如果条件允许,拷贝当前文件夹中内容到/usr/bin 中,如果条件不允许,则可以添加到/usr/local/中,但是需要注意,拷贝到/usr/local 之后需要确保环境变量配置改路径,用于全局,此处笔者使用/usr/bin

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

拷贝之后,执行whereis dockerd 查看执行程序是否能够检索到。

bash 复制代码
~$ whereis dockerd
dockerd: /usr/bin/dockerd

查看版本。

bash 复制代码
~$ dockerd --version
Docker version 28.4.0, build 249d679

表明离线部署成功。

服务配置

docker 服务可以直接通过dockerd & 进行执行,但是实际生产环境中,多是服务自启,则需要将服务配置为服务自启,使用systemctl实现服务自启,以sudo 或者root 权限在/usr/lib/systemd/system/dockerd.service 目录中创建一个服务配置文件dockerd.service,命令行如下。

bash 复制代码
sudo vi /usr/lib/systemd/system/dockerd.service

按字母i键,进入insert模式,配置内容如下:

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 #dockerd path
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

配置后,按Esc键,退出insert 模式,输入:wq并回车,完成保存并退出。

执行daemon-reload重新加载systemd的服务配置文件。

bash 复制代码
sudo systemctl daemon-reload

启动服务。

bash 复制代码
sudo systemctl start dockerd

查看服务状态,服务状态running,并无其他异常输出表明服务运行成功,但此时Loaded: loaded (xxxx.service; enabled; vendor preset: enabled)disabled; vendor preset: enabled 表明服务并不是服务自启。

bash 复制代码
sudo systemctl status dockerd
● dockerd.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/dockerd.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2025-09-21 22:15:55 CST; 6s ago
       Docs: https://docs.docker.com
   Main PID: 639 (dockerd)
      Tasks: 28 (limit: 19126)
     Memory: 128.0M
        CPU: 439ms
     CGroup: /system.slice/dockerd.service
             ├─639 /usr/bin/dockerd
             └─652 containerd --config /var/run/docker/containerd/containerd.toml

配置服务自启,避免系统重启后,服务未启动。

bash 复制代码
sudo systemctl enable dockerd
Created symlink /etc/systemd/system/multi-user.target.wants/dockerd.service → /lib/systemd/system/dockerd.service.

再次查看服务,Loaded: loaded (xxxx.service; enabled; vendor preset: enabled) 已经配置成功。

bash 复制代码
sudo systemctl status dockerd
● dockerd.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/dockerd.service; enabled; vendor preset: enabled)

配置Compose

为了后续简化容器的快速构建,可以安装docker compose,用于之后使用docker-compose.yml 实现一键构建,此处下载的是v2.39.4版本。
github 原始地址下载(可能得科学上网)。

bash 复制代码
wget https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64 -o docker-compose

github 代理地址,也可以使用自己手上有的其他代理地址。

bash 复制代码
wget https://hk.gh-proxy.com/https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64

下载完成后,可以在当前目录使用ls 和grep 进行查看,可以看到文件大小与github72.8MB` 基本一致。

bash 复制代码
ls -lh |grep docker-compose-linux-x86_64
-rw-r--r-- 1 ggcy ggcy  73M Sep 19 16:38 docker-compose-linux-x86_64

可以看到并没有执行权限,添加执行权限。

bash 复制代码
chmod +x ./docker-compose-linux-x86_64

拷贝执行程序到/usr/bin/中。

bash 复制代码
sudo cp ./docker-compose-linux-x86_64 /usr/bin/docker-compose

查看执行程序目录。

bash 复制代码
whereis docker-compose
docker-compose: /usr/bin/docker-compose

验证指令是否能够生效,输出如下,表明部署成功。

bash 复制代码
sudo docker-compose --version
Docker Compose version v2.39.4

常见问题

服务化配置失败request repeated too quickly,提示如下:

bash 复制代码
dockerd.service: Start request repeated too quickly.
Failed to start Docker Application Container Engine.

查看日志发现:

bash 复制代码
failed to load listeners: no sockets found via socket activation: make sure the service was started by systemd

解决办法如下,修改服务配置如下:

bash 复制代码
[Unit]
Description=Docker Application Container Engine Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
# simple
Type=simple
# execstart
ExecStart=/usr/bin/dockerd --host=unix://var/run/docker.sock --log-level=info
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
相关推荐
ybb_ymm2 小时前
Docker下的使用命令
运维·docker·容器
_BugMan4 小时前
docker实战:基础操作、镜像打包、网络、容器编排
运维·docker·容器
斯普信专业组4 小时前
Kubernetes(K8S)完全详解:从架构设计到云原生实践
云原生·容器·kubernetes
明月看潮生4 小时前
编程与数学 03-009 Linux 操作系统应用 13_Linux 系统安全与用户认证
linux·青少年编程·系统安全·编程与数学
艾莉丝努力练剑4 小时前
【编码表 && STL】C++编程基石:从字符编码表到STL标准库的完整入门指南
java·linux·c++
2501_920047035 小时前
docker-容器网络类型
网络·docker·容器
AscendKing5 小时前
Docker 部署 Ollama 详细教程以及镜像高速下载地址
运维·docker·容器
m0_462185115 小时前
大模型部署基础设施搭建 - Docker
docker
world-wide-wait5 小时前
mac安装ubuntu docker
ubuntu·docker