Bug 1627907

Summary: docker-proxy executable not found in $PATH
Product: Red Hat Enterprise Linux 7 Reporter: Jakub Filak <jakub>
Component: dockerAssignee: Daniel Walsh <dwalsh>
Status: CLOSED NOTABUG QA Contact: atomic-bugs <atomic-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.5CC: amurdaca, andrew.wippler, arunraja.ramalingam, lsm5, miminar
Target Milestone: rcKeywords: Extras
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-09-12 12:24:21 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:

Description Jakub Filak 2018-09-11 20:24:57 UTC
Description of problem:
Folks, I am not sure what I am doing wrong (I don't expect you released a docker build without testing it) but when I publish a port using the parameter "-p SRC:DST" I get the following error:

exec: "docker-proxy": executable file not found in $PATH.

I fixed the problem by the following command:
ln -sf /usr/libexec/docker/docker-proxy-current /usr/libexec/docker/docker-proxy

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. docker run -it --rm -p 80:80 fedora /bin/bash

Actual results:
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint serene_easley (c52ba532ff76325d404769ea1b867f511d181b63f99b3a85388604deb8585595): exec: "docker-proxy": executable file not found in $PATH.

Expected results:
The container starts.

Additional info:
If I run the command again, I get the following message:
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint wonderful_goodall (6a1d68ab6e40e3526ddba91378741ff5efa69d25a9bde8748bb362b64942ce4b): Bind for failed: port is already allocated.

Comment 2 Jakub Filak 2018-09-12 12:20:42 UTC
I found the root cause. Someone has created the machine with the file /etc/systemd/system/docker.service.d/lvm.conf which changes the option ExecStart.

Thank you Michal Minar <miminar>!

I apologize for the noise.

Comment 3 ArunRaja 2019-07-24 05:28:24 UTC
Hi Jakub,

How did you resolved the issue, Because i am facing the same issue.

Can you share the steps. You said the issue fixed with the file /etc/systemd/system/docker.service.d/lvm.conf

Since i am not seen any of the filename like you mentioned in my docker system.

Comment 4 Michal Minar 2019-07-24 07:25:22 UTC
Hi ArunRaja,

please check your system for modifications to docker service.
What is your docker version? Where is your docker-proxy binary located? e.g.:

  rpm -ql docker | grep proxy

Does it exist on your system?

  [[ -e $(rpm -ql docker | grep proxy) ]] && echo exists || rpm -V docker

How is your docker daemon launched?

  systemctl show docker.service | grep ExecStart
  ExecStart={ path=/usr/bin/dockerd-current ; argv[]=/usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --authorization-plugin=rhel-push-plugin --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY $REGISTRIES ; ignore_errors=no ; start_time=[Mon 2019-07-22 13:55:07 UTC] ; stop_time=[n/a] ; pid=25717 ; code=(null) ; status=0/0 }

If your --userland-proxy-path=/usr/libexec/docker/docker-proxy-current param looks different, check your config files related to docker for modifications. E.g.:

  cat /etc/sysconfig/docker*

  ls -l /etc/systemd/system/docker.service.d/

Comment 5 Andrew Wippler 2021-01-27 17:15:53 UTC
I was having the same docker-proxy error message as OP and a google search brought me here. 

In my instance, I overridden the ExecStart to include nvidia-container-runtime. My string did not include the --userland-proxy-path. Once I added it in, the error message went away.