| Summary: | [extras-rhel-7.2.4] include docker-common subpackage in 'docker' to handle /usr/bin/docker for docker and docker-latest | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Ed Santiago <santiago> | |
| Component: | docker | Assignee: | Lokesh Mandvekar <lsm5> | |
| Status: | CLOSED ERRATA | QA Contact: | atomic-bugs <atomic-bugs> | |
| Severity: | low | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 7.2 | CC: | ajia, bbreard, dwalsh, jhonce, lsm5, lsu, mmcgrath, pruan, sghosh | |
| Target Milestone: | rc | Keywords: | Extras | |
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | docker-1.9.1-33.el7 | Doc Type: | Enhancement | |
| Doc Text: |
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
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 1330366 (view as bug list) | Environment: | ||
| Last Closed: | 2016-05-12 15:17:43 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Bug Depends On: | ||||
| Bug Blocks: | 1330366 | |||
(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? 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? This could be verified in docker-1.9.1-38.el7.x86_64, docker-common-1.9.1-38.el7.x86_64 works. 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.