Docker在Linux中离线部署
获取部署包
按照个人需求,通过官方网站下载需要的字节压缩包,笔者主要是linux/x86_64
,操作系统为Ubuntu 22.04
。
复制下载链接,在Linux
进行下载,此处为docker-28.4.0.tgz
。
wget https://download.docker.com/linux/static/stable/x86_64/docker-28.4.0.tgz
安装过程
下载到本地系统后,在下载目录进行解压。
tar -zxvf docker-28.4.0.tgz
解压之后,内容如下:
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
。
sudo cp docker/* /usr/bin
拷贝之后,执行whereis dockerd
查看执行程序是否能够检索到。
~$ whereis dockerd
dockerd: /usr/bin/dockerd
查看版本。
~$ dockerd --version
Docker version 28.4.0, build 249d679
表明离线部署成功。
服务配置
docker
服务可以直接通过dockerd &
进行执行,但是实际生产环境中,多是服务自启,则需要将服务配置为服务自启,使用systemctl
实现服务自启,以sudo
或者root
权限在/usr/lib/systemd/system/dockerd.service
目录中创建一个服务配置文件dockerd.service
,命令行如下。
sudo vi /usr/lib/systemd/system/dockerd.service
按字母i
键,进入insert
模式,配置内容如下:
[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
的服务配置文件。
sudo systemctl daemon-reload
启动服务。
sudo systemctl start dockerd
查看服务状态,服务状态running
,并无其他异常输出表明服务运行成功,但此时Loaded: loaded (xxxx.service; enabled; vendor preset: enabled)
,disabled; vendor preset: enabled
表明服务并不是服务自启。
sudo systemctl status dockerd
● dockerd.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/dockerd.service; disabled; vendor preset: enabled)Active: active (running) since Sun 2025-09-21 22:15:55 CST; 6s agoDocs: https://docs.docker.comMain PID: 639 (dockerd)Tasks: 28 (limit: 19126)Memory: 128.0MCPU: 439msCGroup: /system.slice/dockerd.service├─639 /usr/bin/dockerd└─652 containerd --config /var/run/docker/containerd/containerd.toml
配置服务自启,避免系统重启后,服务未启动。
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)
已经配置成功。
sudo systemctl status dockerd
● dockerd.service - Docker Application Container EngineLoaded: loaded (/lib/systemd/system/dockerd.service; enabled; vendor preset: enabled)
配置Compose
为了后续简化容器的快速构建,可以安装docker compose
,用于之后使用docker-compose.yml
实现一键构建,此处下载的是v2.39.4
版本。
github
原始地址下载(可能得科学上网)。
wget https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64 -o docker-compose
github
代理地址,也可以使用自己手上有的其他代理地址。
wget https://hk.gh-proxy.com/https://github.com/docker/compose/releases/download/v2.39.4/docker-compose-linux-x86_64
下载完成后,可以在当前目录使用ls 和
grep 进行查看,可以看到文件大小与
github中
72.8MB` 基本一致。
ls -lh |grep docker-compose-linux-x86_64
-rw-r--r-- 1 ggcy ggcy 73M Sep 19 16:38 docker-compose-linux-x86_64
可以看到并没有执行权限,添加执行权限。
chmod +x ./docker-compose-linux-x86_64
拷贝执行程序到/usr/bin/
中。
sudo cp ./docker-compose-linux-x86_64 /usr/bin/docker-compose
查看执行程序目录。
whereis docker-compose
docker-compose: /usr/bin/docker-compose
验证指令是否能够生效,输出如下,表明部署成功。
sudo docker-compose --version
Docker Compose version v2.39.4