之前看到网上的一些资料,采用下面的方法配置使用overlay的存储模式:
cat > /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
...
ExecStart=
ExecStart=/usr/bin/docker daemon --storage-driver=overlay
EOF
但是,重启docker之后发现,之前在/etc/sysconfig/docker配置文件中配置的一些参数都没生效了,发现运行的docker daemon后面的参数只有–storage-driver=overlay。
默认docker daemon的运行命令是在/usr/lib/systemd/system/docker.service配置文件中定义的:
...
[Service]
Type=notify
NotifyAccess=all
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
ExecStart=/usr/bin/docker-current daemon \
--exec-opt native.cgroupdriver=systemd \
$OPTIONS \
$DOCKER_STORAGE_OPTIONS \
$DOCKER_NETWORK_OPTIONS \
$ADD_REGISTRY \
$BLOCK_REGISTRY \
$INSECURE_REGISTRY
...
而现在docker的运行完全没有按照这个设置来,分析了下原因,应该是/etc/systemd/system/docker.service.d/这里面的配置优先于/usr/lib/systemd/system/docker.service生效了。
最终还是觉得这样配置不太好,尝试其他的配置方法。试验后发现其实还有比较简单的配置方法:
在/etc/sysconfig/docker-storage配置文件中,在DOCKER_STORAGE_OPTIONS=后面添加-s overlay,然后重启docker即可。
DOCKER_STORAGE_OPTIONS= -s overlay
这时使用docker info命令查看,会发现存储模式已经改为overlay了,并且/etc/sysconfig/docker中的其他配置也生效了。