Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Feature: /usr/bin/docker script calls /usr/bin/docker-current or /usr/bin/docker-latest based on the value of the sysconfig variable DOCKERBINARY present in /etc/sysconfig/docker
Reason: Users of docker or docker-latest only want to
use the 'docker' command without needing to constantly check which version of docker daemon is actually being run.
Result: /usr/bin/docker and /etc/sysconfig/docker provided by the docker-common package allow the admin to configure which docker client binary gets called. /usr/bin/docker will call /usr/bin/docker-latest by default when 'docker' is not installed. If 'docker' is installed, /usr/bin/docker will call /usr/bin/docker-current by default, unless DOCKERBINARY is set to /usr/bin/docker-latest in /etc/sysconfig/docker
[ This is probably not fixable, but it should be prominently documented ]
Regardless of which docker daemon is running (docker or docker-latest), running 'docker foo' runs the old (currently 1.9) client. I've found this to be persistently counterintuitive when my fingers type docker commands or when existing scripts run docker instead of docker-latest.
Obvious workaround, for those with no need ever to run older docker, is:
mv /usr/bin/docker{,.OLD} && ln /usr/bin/docker{-latest,}
For shell sessions, an alias may be sufficient.
Fantasy dream solution is to use the /etc/alternatives framework but that would require changes to docker-1.9 packaging.
(In reply to Ed Santiago from comment #0)
> [ This is probably not fixable, but it should be prominently documented ]
>
> Regardless of which docker daemon is running (docker or docker-latest),
> running 'docker foo' runs the old (currently 1.9) client. I've found this to
Ed, I thinks you should use docker-latest to run commands instead of using docker if the current docker-latest daemon is running.
You would need to install docker executable as /usr/bin/docker-current and /usr/bin/docker-latest, then have /etc/sysconfig/docker tell /usr/bin/docker which executable to run.
Note we should be careful, since in the future (docker-1.12, docker is splitting the client and server to docker and dockerd.)
Note we have not done this for 7.2.4 so I am not sure we can get this released in time.
Well we can do this ONLY if there is not changes in the unit file between docker-1.10 and docker-1.9?
Comment 16Lokesh Mandvekar
2016-04-26 14:16:06 UTC
I guess I forgot to change the path in docker unit file to /usr/bin/docker-current. Let me update that.
The way I see it is the person managing the daemon needs to explicitly choose which daemon they want to run:
$ systemctl [re]start docker
OR
$ systemctl [re]start docker-latest
Then they can uncomment the line that says DOCKERBINARY=/usr/bin/docker-latest if they want to use v1.10.3 or they can keep it as-is which will default to using /usr/bin/docker-current which is v1.9.1 right now.
This makes life easier for the user who doesn't wanna figure out which daemon is running. The person maintaining the service still needs to keep in mind the two different dockers.
wdyt?
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://rhn.redhat.com/errata/RHSA-2016-1034.html
[ This is probably not fixable, but it should be prominently documented ] Regardless of which docker daemon is running (docker or docker-latest), running 'docker foo' runs the old (currently 1.9) client. I've found this to be persistently counterintuitive when my fingers type docker commands or when existing scripts run docker instead of docker-latest. Obvious workaround, for those with no need ever to run older docker, is: mv /usr/bin/docker{,.OLD} && ln /usr/bin/docker{-latest,} For shell sessions, an alias may be sufficient. Fantasy dream solution is to use the /etc/alternatives framework but that would require changes to docker-1.9 packaging.