1. 程式人生 > >docker配置overlay儲存模式

docker配置overlay儲存模式

之前看到網上的一些資料,採用下面的方法配置使用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中的其他配置也生效了。