mirage
mirage

Reputation: 631

Moving docker root folder to a new drive / partition

I am trying to move the "/var/lib/docker" folder from one disk to another since that is taking up too much space. I keep running into some errors relating to permissions!

According to these questions:

My disk is mounted on "/data" and I copied the "/var/lib/docker" folder to "/data/docker"

This is what I tried:

However in all the cases, I get an error when I try to launch services inside my container about missing permissions to write to "/dev/null" (as user root).

I simply did a copy of the folder to the new disk. This copied all the permissions as well (This is an ext4 system with same filesystem level permissions as the original disk on which docker exists now).

Specs:

How do I move the data properly? Do I need a upgrade first?

Upvotes: 4

Views: 6008

Answers (2)

Stuart Cardall
Stuart Cardall

Reputation: 2457

To add custom startup options to docker in Debian / Ubuntu (such as using a different data directory):

Edit /lib/systemd/system/docker.service:

[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd://
MountFlags=slave
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity

In /etc/default/docker set :

DOCKER_OPTS="-g /srv/docker"


In more recent Docker versions on Ubuntu you need to edit /etc/default/daemon.json:

{
    "data-root": "/new/location"
}

Upvotes: 4

Karl Forner
Karl Forner

Reputation: 4414

I just did the following and it seems to work well:

as root:

service docker stop
mv /var/lib/docker /data/
# reboot and get root
service docker stop
rm -rf /var/lib/docker && ln -s /data/docker /var/lib/
service docker start

Upvotes: 9

Related Questions