配置说明
以下配置说明,统一以 CentOS 7.3 为系统环境,其它系统版本可能会有所不同。
相关配置文件
基本配置文件:
/etc/sysconfig/docker/etc/sysconfig/docker-storage-setup/etc/sysconfig/docker-network/etc/docker/daemon.json
systemd 服务配置:
/usr/lib/systemd/system/docker.service
Docker 从 1.12 开始支持通过 /etc/docker/daemon.json 文件管理 Docker daemon 的配置选项。
具体配置说明
默认配置内容如下:
# grep -vE '^#|^$' /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald'
if [ -z "${DOCKER_CERT_PATH}" ]; then
DOCKER_CERT_PATH=/etc/docker
fi关于 docker daemon 配置选项,本文主要参考官方文档,最新说明以官方 Daemon CLI reference(dockerd) 为主。
Daemon socket 选项
Docker daemon 可以三种不同类型的 Socket 监听 Docker API 请求:unix,tcp,fd。默认情况下,会创建一个名为 /var/run/docker.sock 的 unix Socket 文件,该文件的访问权限需要是 root 权限或者属于 docker 组。如果有远程访问需求,那么则需要开启 tcp Socket。正常开启 tcp Socket,是没有任何加密和安全认证的,可以通过 HTTPS 等方式加密 tcp Socket,默认不建议开启 tcp Socket。
通过 -H 选项可以指定 Docker daemon 使用的 Socket 类型,默认 unix Socket 方式,通过添加 -H tcp://0.0.0.0:2375 达到使用 tcp Socket 的方式,0.0.0.0 表示监听当前主机所有网络接口。
指定多种连接:
Daemon storage-driver 选项
Docker daemon 当前支持以下几种镜像层存储驱动:
aufs
devicemapper
btrfs
zfs
overlay
overlay2
以上关于不同类型的存储驱动,后续会具体介绍,这一章节只介绍基本的存储驱动配置项,针对 CentOS 7 系统则选择使用 devicemapper、overlay、overlay2 居多。当前笔者通过 Docker 安装 的默认存储驱动为 overlay2:
用户可以通过添加 --storage-driver 选项设置运行存储驱动,不过更推荐使用 /etc/docker/daemon.json 配置文件配置。
通过添加 --storage-driver 选项指定存储驱动:
移除 --storage-driver 选项,并且在 /etc/docker/daemon.json 文件中添加配置,如果文件不存在则创建即可。
Docker runtime execution 选项
通过指定 native.cgroupdriver 选项,可以配置容器 cgroups 管理。
Daemon DNS 选项
选项
说明
--dns 8.8.8.8
设置容器 DNS
--dns-search example.com
设置容器 search domain
Docker Registry 相关选项
insecure registries
Docker 认为一个私有仓库要么安全的,要么就是不安全的。以私有仓库 myregistry:5000 为例,一个安全的镜像仓库需要使用 TLS,并且需要拷贝 CA 证书到每台 Docker 主机 /etc/docker/certs.d/myregistry:5000/ca.crt 上。
通过选项 --insecure-registry 可以标识指定私有仓库为不安全的。 如 --insecure-registry myregistry:5000 标识为 myregistry:5000 私有仓库为不安全的,而 --insecure-registry 10.1.0.0/16 则告诉 Docker daemon 所有域名被解析到这个网段中的镜像仓库都被标识为不安全的。一个不安全的镜像只有被标识为不安全的时候,才可以正常的进行 docker pull、push、search 等操作。
lagacy registries
默认情况下,Registry V1 协议是被禁用的,Docker daemon 不会在执行 push、pull 以及 login 操作的时候去尝试通过 V1 协议去连接。可以通过 --disable-legacy-registry=false 启用该选项。需要注意的是,在 Docker 17.12 版本中该选项将会被移除,不再支持 Registry V1。
Default ulimit settings
选项 --default-ulimit 可以设置所有容器的默认 ulimit 值,通过 --default-ulimit nproc=10240:10240 --default-ulimit nofile=65535:65535 设置容器的 nproc 和 nofile 值。如果该值没有设置,那么 ulimit 相关会继承宿主的设置。如果 docker run 设置 ulimit 相关,则会覆盖默认值,也就是说 docker run 优先级最高。
Daemon configuration file
--config-file 选项用来指定 daemon 的 JSON 格式配置文件,默认 Linux 上 JSON 格式的配置文件为 /etc/docker/daemon.json。
以下为所有支持配置在 JSON 文件中的选项:
最后更新于
这有帮助吗?