I was finally able to solve this problem. Which means that it seems that I found a solution, but I'm not still sure what the problem is:
1) pull container from registry 2.0 + run with docker 1.6 -> fail
2) pull container from registry 0.9.x (either Docker's own or the Artifactory server that we run internally) + run with docker 1.6 -> works
3) pull container from registry 2.0 + run with docker 1.5 or older -> fail
4) pull container form registry 0.9.x + run with docker 1.5 or newer -> works
I don't really think that Registry 2.0 is at fault but I have no better answer. The new registry is much faster than the old one but guess we'll stick with the older registry for the time being.
docker's default storage driver might have changed.
I had the same problem and today I was succeded to start docker 1.10 finally. My problem was the docker's starting command. It seemed that I had used the docker with devicemapper
storage driver and docker 1.10 driver was not the same.
Here is what I tried.
1. Delete network files.
When I gave up upgrading docker 1.10 once and downgraded it 1.10 to 1.9, 1.9 wouldn't start. It started after I deleted these files. This may not effect your problem, but I decided that I delete them before upgrade docker from now on.
mkdir /var-lib-docker-network-files
mv /var/lib/docker/network/files/* /var-lib-docker-network-files
2. Overwrite ExecStart
as your customized command.
You can see the default start command in here;
vi /lib/systemd/system/docker.service
Mine was completely same with the official repository's.
ttps://github.com/docker/docker/blob/master/contrib/init/systemd/docker.service
It should be like this;
ExecStart=/usr/bin/docker daemon -H fd://
This command didn't work for me. So I made a file which overrided the command as a wrapping conf file here;
vi /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -s devicemapper -H fd://
3. Reload and Start
Make sure to reload systemd before start docker.
systemctl daemon-reload
service docker start
FYI, this command will remove all docker images.
I saw an another ExecStart line at here.
vi /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=docker daemon -D -s overlay
Although this worked and made docker 1.10 started, my all of docker images has disappeared. I was very annoyed due to docker images
returned nothing.
But I still had a lot of real image files in /var/lib/docker/devicemapper/
so I thought this command reffered a strange directory. Then I got the answer, it's devicemapper
.
Official Document
You can see the details here. We might have to learn about the daemon.
Best Answer
I solved my problem.
I had
SocketGroup=docker
configuration in/usr/lib/systemd/system/docker.socket
file, but at Docker startup time a group docker did not exist because I manage my Linux identities (users, groups, etc) with FreeIPA and this starts after Docker.Solution
Add this line to /etc/group file:
GID is a same number as is configured in FreeIPA for group docker.