Change the Docker storage backend

Hello all,

I have been using Docker with the Devicemapper storage driver. After manually editing the launcher script, I finally took the time to convert to Overlay2. Here are the instructions I took to do this. I hope this helps others. I see others have asked the question, but I don’t see any answers. I used this excellent guide to help figure this out.

Step 1: Halt your Discourse application (and other docker apps)

./launcher stop app

Step 2: Commit and save your old Docker containers/images

We first committed each image we care for so that we had the most recent version tagged somewhere with all changes included. This can be done roughly like this:

docker ps -a
# for each container you care for, stop and then commit it
docker commit e198aac7112d export/local_discourse_app 
docker save export/local_discourse_app > export_local_discourse_app.tar.gz

Step 3: Change storage driver

I chose Overlay2, but the Discourse-recommended driver is aufs. Adjust as necessary. If something goes wrong, simply set the storage-driver to devicemapper as needed.

Insert the following into /etc/docker/daemon.json

{
  "storage-driver": "overlay2"
}

Step 4: Restart docker

sudo service docker restart

Step 5: Import image into new storage device

docker load < export_local_discourse_app.tar.gz

Step 6: Rebuild Discourse

./launcher rebuild app

I hope this helps! Feel free to suggest any modifications or questions.

「いいね!」 18

こんにちは!スレッドを掘り起こしてすみません。Discourse を約 2 年間使ってきましたが、今からプラグイン開発を始めようとしています。
Ubuntu 16.04 を新規インストールした VPS を持っており、デフォルトで devicemapper を使用して Docker がインストールされています。これを変更する方法がありません(このチュートリアルや Google の情報では Docker の起動が不可能になってしまいます)。何か手がかりはありませんか?

なぜすでにかなり時代遅れになっているUbuntu 16.04なのでしょうか?18.04ではないのはなぜですか?

両方試してみましたが、私のVPSはそのカーネルをサポートしていないか、何か問題があるようです。同じ会社でより高性能なVPSを使っていますが、そこでは問題ありません。

これで /var/lib/docker/aufs ディレクトリと export_local_discourse_app ファイルを削除できる(削除すべき)と推測しますが、よろしいでしょうか?