On 05/10/2016 12:06 PM, Erik Swanson (eriswans) wrote:

On May 10, 2016, at 05:48, Daniel J Walsh <dwa...@redhat.com> wrote:

On 05/09/2016 07:38 PM, Erik Swanson (eriswans) wrote:
On May 9, 2016, at 07:54, Lokesh Mandvekar <l...@fedoraproject.org> wrote:

- /usr/bin/docker is a script which execs /usr/bin/docker-current (v1.9) or
  /usr/bin/docker-latest (v1.10) based on what $DOCKERBINARY is set to.
Too late (or wrong forum?) perhaps, but this split is very distressing to me as 
an end-user because it breaks the use case of bind-mounting the docker client 
binary and socket into a privileged container, a pattern which otherwise would 
work on basically every Docker-host OS out there regardless of Docker version.

—
Erik Swanson


Yes we had not thought about this.  I guess you would need to volume mount 
docker and docker-current or docker-latest into the container.
(And whatever envionrment/configuration the /usr/bin/docker stub uses to decide 
which to execute, as well.)

Currently, I can tell people to bind-mount /usr/bin/docker and the socket, and 
it’ll work *everywhere*. With this change, I’ll have to document a ridiculous 
matrix of how to launch a docker-using privileged container, varying on the 
host OS and the version of the host OS (and what version of Docker they’ve 
elected to use).
Well not quite everywhere since docker is not static linked. If you volume mount in docker-current or docker-latest it will work.

docker run -v /usr/bin/docker-latest:/usr/bin/docker -v /run/docker.sock:/run/docker.sock ...

Will work.
The assumption of /usr/bin/docker being a self-contained(-ish) binary 
guaranteed to be compatible with the running daemon’s socket isn’t entirely 
uncommon: A quick google search for “-v /usr/bin/docker:” shows ~1670 results, 
all of which are going to be broken by the eccentric change of making 
/usr/bin/docker a stub (or a symlink).

(Is there a more appropriate venue for this concern/appeal?)
Open a bugzilla on this.
—
Erik Swanson


Reply via email to