Hello,
With the latest version 23.0 docker has removed support for the btrfs storage driver.
So I would like to move to overlay2 as it seems to be the recommended path so we can continue to receive updates. Our application is a single container running various apps within.
I reviewed the official documentation it states to modify /etc/docker/daemon.json and switch it from btrfs to overlay2. I’ve been playing around with this and have had no success.
Below is what I have tried and the problems encountered.
I also included docker version and docker info output.
In my last attempt, this is what I tried:
- Save Image: docker save image:latest | gzip > image_latest.tar.gz
- Copy contents (a mount on our FS): cp -au /var/lib/docker /var/lib/docker.bk
- stop docker
- Modify daemon.json to overlay2
- start docker
- Load Image: docker load --input image_latest.tar.gz
At this point, the image reloads but when i run docker ps -a nothing is running. When i try docker run to start the image, I do get a few errors.
[root@server ~]# docker run image:latest
/usr/lib/python2.7/site-packages/supervisor/options.py:461: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a “-c” argument specifying an absolute path to a configuration file for improved security.
'Supervisord is running as root and it is searching ’
Error: The directory named as part of the path /opt/app/external/logs/proftpd/proftpdCtl.out does not exist in section ‘program:proftpd’ (file: ‘/etc/supervisord.d/supervisord.ini’)
At this point I get some results when checking docker ps -a, but the name associated (boring_lumiere) is random and not the name of the container.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02df591c1cae ecentre:latest “/bin/sh -c '/usr/bi…” 13 minutes ago Exited (2) 13 minutes ago boring_lumiere
Results of docker info and version prior to any changes.
[root@server ~]# docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.9.1-docker)
scan: Docker Scan (Docker Inc., v0.17.0)
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 1
Server Version: 20.10.18
Storage Driver: btrfs
Build Version: Btrfs v4.9.1
Library Version: 102
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
Default Runtime: runc
Init Binary: docker-init
containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1160.83.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.56GiB
Name: xxx
ID: KMFF:J64W:6ME6:DQA3:CQVD:SSMB:KVXN:LEQG:S7A7:W6B2:TTHJ:RKPT
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
Live Restore Enabled: false
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Thank you if you read this and any future input.