docker-archive / v1.10-migrator

Prepare docker graph directory for content addressability
Apache License 2.0
24 stars 24 forks source link

Tell users which drivers detected at runtime #10

Closed jmkgreen closed 8 years ago

jmkgreen commented 8 years ago

I came to an Docker host with no knowledge of how it was originally set up. I ran the tool and was told about multiple drivers being detected.

At this point I had to abort in our maintenance window in order to investigate which drivers had been used in the past. Given the /var/lib/docker folder holds more than just driver-folders it would be useful to list those the tool detected to help narrow things down for the end-user.

patryk-s commented 8 years ago

You can see your current driver with docker info. Here is an example with btrfs:

Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 11
Server Version: 1.10.1
Storage Driver: btrfs
 Build Version: Btrfs v4.4
 Library Version: 101
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
 Volume: local
 Network: bridge null host
Kernel Version: 4.3.3-3-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.75 GiB

Does that help?

jmkgreen commented 8 years ago

Not when the tool tells you there are multiple. The tool "knows", the operator may not.

tonistiigi commented 8 years ago

You usually want to migrate the driver you are using so I think looking at docker info is the best option. Showing names for others would make it bit more likely that user would migrate the wrong driver. For example, if they only briefly used devicemapper when they first installed docker because it was the default.

jmkgreen commented 8 years ago

In our case it has detected both aufs and vfs which, I think, becomes volumes at some point in the recent Docker versions. I cannot find any documentation to help the user in making their choice, however.

tonistiigi commented 8 years ago

@jmkgreen Run docker info and look at the Storage Driver from the output. There is only one driver that can be used by the daemon. The tool doesn't know which one you use but your running daemon does.

jmkgreen commented 8 years ago

An examination shows our 1.6 host is using data in both aufs and vfs.

If the operator is expected to tell the tool which to use from the daemon's Storage Driver output, why doesn't it a) tell the operator to look there or b) find out itself?

tonistiigi commented 8 years ago

@jmkgreen a) It could b) Tool doesn't know what socket daemon is listening on. This depends on your configuration.