当前位置: 首页 > news >正文

Docker在Linux中离线部署

image.png

获取部署包

按照个人需求,通过官方网站下载需要的字节压缩包,笔者主要是linux/x86_64,操作系统为Ubuntu 22.04
image.png
复制下载链接,在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 进行查看,可以看到文件大小与github72.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
http://www.dtcms.com/a/393558.html

相关文章:

  • 面阵vs线阵工业相机的触发方式有什么不同?
  • 【Hadoop】HBase:构建于HDFS之上的分布式列式NoSQL数据库
  • 拉取GitHub源码方式
  • 【国二】【C语言】改错题中考察switch的用法、do while执行条件的用法
  • 23种设计模式之【命令模式模式】-核心原理与 Java 实践
  • APP持续盈利:简单可行实行方案
  • qt 操作pdf文档小工具
  • Web3 开发者周刊 68 | EF 将成立一个新的 AI 团队
  • [OpenGL]相机系统
  • 软件体系结构——负载均衡
  • Unity 游戏引擎中 HDRP(高清渲染管线) 的材质着色器选择列表
  • 系统架构设计师(现代计算机系统架构和软件开发)错题集
  • 七、Linux创建自己的proc文件
  • 理解CSS中的100%和100vh
  • [特殊字符] Chrome浏览器证书导入指南
  • 15-用户登录案例
  • Kurt-Blender零基础教程:第3章:材质篇——第1节:材质基础~原理化BSDF,添加有纹理材质与用蒙版做纹理叠加
  • 南京大学 - 复杂结构数据挖掘(一)
  • 嵌入式系统、手机与电脑:一场技术演化的“三角关系”
  • Go语言常用的第三方开发包教程合集
  • 鸿蒙Next ArkTS卡片进程模型解析:安全高效的UI组件隔离之道
  • ubuntu linux 控制wifi功能 dbus控制
  • `TensorBoard`、`PyTorchViz` 和 `HiddenLayer` 深度学习中三个重要的可视化工具
  • 本地设备ipv6默认网关和路由器ipv6默认网关的区别
  • 云原生docker在线yum安装
  • LeetCode 384 打乱数组 Swift 题解:从洗牌算法到实际应用
  • 计算机网络-因特网
  • HDFS和MapReduce——Hadoop的两大核心技
  • 【华为OD】石头剪刀布游戏
  • LinuxC++项目开发日志——基于正倒排索引的boost搜索引擎(1——项目框架)