CentOS 7.3
为系统环境,其它系统版本可能会有所不同。/etc/sysconfig/docker
/etc/sysconfig/docker-storage-setup
/etc/sysconfig/docker-network
/etc/docker/daemon.json
/usr/lib/systemd/system/docker.service
1.12
开始支持通过 /etc/docker/daemon.json
文件管理 Docker daemon 的配置选项。/var/run/docker.sock
的 unix Socket 文件,该文件的访问权限需要是 root 权限或者属于 docker 组。如果有远程访问需求,那么则需要开启 tcp Socket。正常开启 tcp Socket,是没有任何加密和安全认证的,可以通过 HTTPS 等方式加密 tcp Socket,默认不建议开启 tcp Socket。docker
用户组,需要手动创建才会有。但是不建议授权非 root 用户到 docker 组,如此该用户就等于拥有 root 权限了(如直接 mount 宿主根目录到容器,即可变相获取 root 用户的权限)。-H
选项可以指定 Docker daemon 使用的 Socket 类型,默认 unix Socket 方式,通过添加 -H tcp://0.0.0.0:2375
达到使用 tcp Socket 的方式,0.0.0.0
表示监听当前主机所有网络接口。--storage-driver
选项设置运行存储驱动,不过更推荐使用 /etc/docker/daemon.json
配置文件配置。--storage-driver
选项指定存储驱动:daemon.json
是跨平台的,并且为了和系统初始化脚本配置冲突的问题,所以 Docker 官方推荐使用 daemon.json
方式代替 --storage-driver
选项方式。--storage-driver
选项,并且在 /etc/docker/daemon.json
文件中添加配置,如果文件不存在则创建即可。loop-lvm
模式,这种模式下因为回环设备的原因,性能比较差,只适用于测试环境下使用。针对生产环境,则建议使用 direct-lvm
模式,后文会专门针对存储驱动做详细介绍。native.cgroupdriver
选项,可以配置容器 cgroups 管理。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 等操作。--disable-legacy-registry=false
启用该选项。需要注意的是,在 Docker 17.12 版本中该选项将会被移除,不再支持 Registry V1。disable-legacy-registry
配置选项不再支持。--default-ulimit
可以设置所有容器的默认 ulimit 值,通过 --default-ulimit nproc=10240:10240 --default-ulimit nofile=65535:65535
设置容器的 nproc 和 nofile 值。如果该值没有设置,那么 ulimit 相关会继承宿主的设置。如果 docker run 设置 ulimit 相关,则会覆盖默认值,也就是说 docker run 优先级最高。--config-file
选项用来指定 daemon 的 JSON 格式配置文件,默认 Linux 上 JSON 格式的配置文件为 /etc/docker/daemon.json
。