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