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

linux:离线/无网环境安装docker

以centos7系列为例,整个安装在root用户下进行。
先在有网机器上下载对应操作系统和CPU架构的docker二进制安装包,随后,传输到无网机器的root用户下,下载网址。

# x86
https://download.docker.com/linux/static/stable/x86_64/
# arm
https://download.docker.com/linux/static/stable/aarch64/

创建一个docker用户,我们后面可以把docker的数据目录放到该用户的家目录下。

useradd -m -s /bin/bash docker

系统会自动帮 docker 用户创建一个家目录 /home/docker。

将二进制安装包解压到/usr/local/

tar xzvf docker-20.10.7.tgz -C /usr/local/

解压后会有 /usr/local/docker/目录,里面全是二进制文件。
建立软链接,让命令能直接用:

ln -s /usr/local/docker/* /usr/bin/

准备 systemd service 文件 /etc/systemd/system/docker.service

[Unit]
Description=Docker Daemon
After=network.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s SIGTERM $MAINPID
Restart=always
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity[Install]
WantedBy=multi-user.target

也可以直接将下面两个文件放到/etc/systemd/system/
https://github.com/moby/moby/blob/master/contrib/init/systemd/docker.service
https://github.com/moby/moby/blob/master/contrib/init/systemd/docker.socket

创建docker配置文件

mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json >/dev/null <<'EOF'
{"data-root": "/home/docker/data"
}
EOF

如果你还需要设置镜像加速器、registry、log 驱动等,都放到这个 JSON 里。把所有运行参数只放在 daemon.json,docker.service 的 ExecStart 只保留 /usr/bin/dockerd,然后 daemon-reload + start,基本就能起。

docker的数据目录通常比较占空间,一般放到大容量的磁盘上(/home挂载到一个大容量SSD/disk上),而不是放到系统盘上。

创建好数据目录

mkdir -p /home/docker/data

启动docker进程

systemctl daemon-reload
# 启动docker进程
systemctl start docker
# 查看docker进程状态
systemctl status docker

systemd扩展:
修改了 service 配置文件:比如你刚改了 docker.service 里的 ExecStart,一定要 daemon-reload 才能让 systemd 知道配置变了。
新建了一个自定义 service:比如 /etc/systemd/system/myapp.service,写完文件后也要 reload,否则 systemctl 会提示找不到。
删除了一个 service 文件:reload 后 systemd 会更新内部状态,把它从可用列表里移除。
daemon-reload 只是重新加载配置,不会影响正在运行的服务。
如果你修改了 unit 文件内容,通常的完整操作是:

 systemctl daemon-reload   # 让 systemd 读到新配置systemctl restart xxx     # 让服务进程按新配置重启

其他常用命令:

# 设置docker引擎开机自启动
systemctl enable docker
#关闭docker引擎
systemctl stop docker
http://www.xdnf.cn/news/1418707.html

相关文章:

  • 从Java全栈开发到微服务架构:一次真实的面试实录
  • (Arxiv-2025)HunyuanCustom:一种面向多模态驱动的定制化视频生成架构
  • vizard-将长视频变成适合社交的短视频AI工具
  • 【JavaWeb】之HTML(对HTML细节的一些总结)
  • vue3使用路由router
  • 大规模异构数据挖掘与数据架构
  • C++ STL序列容器-------list
  • 【LeetCode】3524. 求出数组的 X 值 I (动态规划)
  • 机器学习(四)KNN算法-分类
  • 13 选 list 还是 vector?C++ STL list 扩容 / 迭代器失效问题 + 模拟实现,对比后再做选择
  • MVC、三层架构
  • 手写MyBatis第46弹:多插件责任链模式的实现原理与执行顺序奥秘--MyBatis插件架构深度解析
  • 2025 数字化转型期,值得关注的 10 项高价值证书解析
  • T507 音频调试
  • Redis--Lua脚本以及在SpringBoot中的使用
  • 基于STM32设计的宠物寄养屋控制系统(阿里云IOT)_276
  • 【python+requests】告别繁琐XML解析!用xmltodict.parse像处理JSON一样轻松操作XML
  • MySQL下载及安装(Windows 11)
  • 【图论】 Graph.jl 操作汇总
  • Qt Widgets 之 QAbstractButton
  • 每周读书与学习->认识性能测试工具JMeter
  • Kafka Connect + Streams 用到极致从 CDC 到流处理的一套落地方案
  • UCIE Specification详解(十二)
  • Git中批量恢复文件到之前提交状态
  • 收藏!VSCode 开发者工具快捷键大全
  • 在Linux系统中安装Jenkins(保姆级别)
  • Java:Could not resolve all files for configuration
  • Day42 Grad-CAM与Hook函数
  • UniApp + SignalR + Asp.net Core 做一个聊天IM,含emoji 表情包
  • 【Docker】Docker容器和镜像管理常用命令