Docker 高级配置:修改数据目录、日志限制、镜像源与网络配置
Docker 高级配置:修改数据目录、日志限制、镜像源与网络配置
Docker 默认配置在生产环境中可能不满足需求,例如默认数据目录可能空间不足、日志文件可能无限增长、拉取镜像速度慢、默认 IP 段可能与现有网络冲突等。本文将详细介绍如何通过配置文件来修改 Docker 的这些默认行为,以适应不同的生产环境需求。
1. 配置文件位置
Docker 的主要配置文件位于 /etc/docker/daemon.json。如果该文件不存在,需要手动创建。修改此文件后,需要重启 Docker 服务才能使配置生效。
2. 修改 Docker 数据目录
默认情况下,Docker 将所有数据(镜像、容器、卷等)存储在 /var/lib/docker 目录下。如果该分区空间有限,可以将其修改到其他有足够空间的目录。
配置方法
在 /etc/docker/daemon.json 中添加 data-root 字段:
{
"data-root": "/data/docker"
}
此配置将 Docker 的数据目录修改为 /data/docker。确保该目录存在且有足够权限。
3. 限制容器日志大小
Docker 默认使用 json-file 日志驱动,日志文件可能会无限增长,占用大量磁盘空间。可以通过配置限制单个日志文件的大小和保留的日志文件数量。
配置方法
在 /etc/docker/daemon.json 中添加 log-driver 和 log-opts 字段:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "1"
}
}
此配置将单个日志文件的最大大小限制为 50MB,最多保留 1 个历史日志文件(即总共最多保留 2 个文件:当前文件和一个旧文件)。
4. 配置镜像加速器(Registry Mirrors)
从 Docker Hub 拉取镜像时,由于网络原因,速度可能较慢。配置镜像加速器可以显著提升拉取速度。
配置方法
在 /etc/docker/daemon.json 中添加 registry-mirrors 字段:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
可以配置多个镜像源,Docker 会按顺序尝试。
5. 修改 Docker 默认 IP 段
Docker 默认使用 172.17.0.0/16 网段创建 Bridge 网络。如果此网段与现有网络冲突,需要修改为不冲突的网段。
配置方法
在 /etc/docker/daemon.json 中添加 default-address-pools 字段:
{
"default-address-pools": [
{
"base": "172.30.0.0/16",
"size": 24
},
{
"base": "172.31.0.0/16",
"size": 24
}
]
}
此配置将 Docker 的默认 IP 池设置为 172.30.0.0/24 和 172.31.0.0/24 等网段。
6. 配置不安全的镜像源(Insecure Registries)
在企业内部,可能会有自建的 HTTP 镜像仓库。Docker 默认只信任 HTTPS 的镜像源,需要将 HTTP 源配置为不安全的镜像源才能使用。
配置方法
在 /etc/docker/daemon.json 中添加 insecure-registries 字段:
{
"insecure-registries": [
"10.96.183.181:9082"
]
}
此配置将 10.96.183.181:9082 配置为不安全的镜像源,允许从该地址拉取镜像。
7. 完整配置示例
以下是一个综合了上述所有配置的完整 daemon.json 示例:
{
"data-root": "/data/docker",
"default-address-pools": [
{
"base": "172.30.0.0/16",
"size": 24
},
{
"base": "172.31.0.0/16",
"size": 24
}
],
"insecure-registries": [
"10.96.183.181:9082"
],
"log-driver": "json-file",
"log-opts": {
"max-file": "1",
"max-size": "50m"
},
"registry-mirrors": [
"http://10.96.183.181:9082"
]
}
8. 应用配置
修改完 /etc/docker/daemon.json 文件后,需要重启 Docker 服务:
sudo systemctl restart docker
或者在某些系统上:
sudo service docker restart
重启后,新的配置将生效。
9. 验证配置
可以通过以下命令验证配置是否生效:
- 检查 Docker 信息:
docker info - 检查 Docker 版本和配置:
docker version - 查看 Docker 系统事件:
docker system events
总结
通过修改 /etc/docker/daemon.json 配置文件,可以灵活地调整 Docker 的各种行为,以适应不同的生产环境需求。本文介绍了修改数据目录、限制日志大小、配置镜像加速器、修改默认 IP 段和配置不安全镜像源的方法。合理配置这些参数,可以提升 Docker 的性能和安全性。