Centos7.9 离线部署Docker

CENTOS 7 系列没什么好说的,如果有外网的情况下请下载运行 "系统优化脚本" 关键我们是离线的,请往下看手动操作。 开局配置 关闭 SELinux # 临时关闭 setenfo

CENTOS 7 系列没什么好说的,如果有外网的情况下请下载运行 "系统优化脚本" 关键我们是离线的,请往下看手动操作。

开局配置

关闭 SELinux

# 临时关闭
setenforce 0

# 永久关闭(需重启)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

下载并上传docker离线安装包

官方地址

下载

打开终端工具 XFTP 上传安装包,docker-28.2.2.tgz 并解压

tar -zxvf docker-28.2.2.tgz 

将解压的文件复制到 /usr/bin 目录

cp docker/* /usr/bin/

编辑 docker.service 文件

# 打开文件路径
cd /etc/systemd/system/

# 手动创建配置文件
touch docker.service

# 由于离线环境,无法使用vim编辑器
vi docker.service

复制下面内容到docker.service ,或者 下载

[Unit]
# 单元描述
Description=Docker Application Container Engine
# 文档链接
Documentation=https://docs.docker.com
# 在哪些服务之后启动
After=network-online.target firewalld.service
# 需要的依赖
Wants=network-online.target

[Service]
# 服务类型为notify,表示服务启动完成后会通知systemd
Type=notify

# 默认不使用systemd管理cgroups,因为委托问题仍然存在
# 且systemd当前不支持docker容器所需的完整cgroup功能集

# 服务启动命令
ExecStart=/usr/bin/dockerd
# 重新加载配置的命令
ExecReload=/bin/kill -s HUP $MAINPID

# 设置资源限制为无限
# 非零的资源限制会导致内核中的记账开销,可能引起性能问题
# 建议使用cgroups来进行容器本地记账
LimitNOFILE=infinity  # 文件描述符数量无限制
LimitNPROC=infinity   # 进程数量无限制
LimitCORE=infinity    # 核心转储文件大小无限制

# 如果系统d版本支持(226及以上),可以取消TasksMax的注释
#TasksMax=infinity

# 启动超时设置为0表示不限制
TimeoutStartSec=0

# 设置为yes让systemd不重置docker容器的cgroups
Delegate=yes

# 仅杀死docker进程,不杀死cgroup中的所有进程
KillMode=process

# 如果docker进程意外退出则自动重启
Restart=on-failure
# 在60秒内最多重启3次
StartLimitBurst=3
StartLimitInterval=60s

[Install]
# 系统启动时安装到多用户目标
WantedBy=multi-user.target

添加可执行权限

chmod +x docker.service

加载docker.service

  • 若修改了docker.service文件,则要重新加载该文件

systemctl daemon-reload

启动docker

systemctl start docker

# 开机自动启动
systemctl enable docker.service

查看docker.service是否运行 状态为 active (running)

systemctl status docker

设置全局docker数据目录

默认docker数据目录是/var/lib/docker,修改默认目录为/data/docker-data ,它并不是手动映射的文件夹(-v )

data-root 是 Docker 守护进程的默认存储路径(通常为 /var/lib/docker),用于存放所有 Docker 相关的数据

  • 镜像(images

  • 容器运行时数据(containers

  • 卷(volumes,除非手动指定其他路径)

  • 网络配置(networks

  • 其他 Docker 内部数据。

作用:这是 Docker 管理的内部存储区域,用户通常不直接操作其中的文件(除非调试或清理)。

特点:

  • 由 Docker 自动管理。

  • 数据生命周期与 Docker 相关(例如删除容器时,其内部存储的数据会被清理)。

手动映射文件夹 -v--volume

  • 定义
    通过 docker run -v /host/path:/container/path 将主机上的目录或文件挂载到容器中。

  • 作用

    • 实现主机与容器之间的文件共享。

    • 数据完全独立于 Docker 的 data-root,存储在主机指定路径。

  • 特点

    • 持久化:即使容器删除,主机上的数据仍然保留。

    • 直接访问:主机和容器均可读写文件。

    • 灵活性:可以挂载任意主机路径(如配置文件、数据库文件等)。

# 编辑并创建daemon.json文件
vi /etc/docker/daemon.json
{
    ...其他配置,
    "data-root": "/data/docker-data"
}

生效配置

# 刷新配置文件
systemctl daemon-reload

# 重启docker服务
systemctl restart docker

查看docker默认目录是否改变

docker info

LICENSED UNDER CC BY-NC-SA 4.0
评论
访问统计
总访问量: 👀| 访客数: 🚶‍♂️