Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retriable failure: create: precreate: exec: "docker": executable file not found in $PATH #5828

Closed
a1exus opened this issue Nov 4, 2019 · 11 comments
Labels
co/none-driver kind/support Categorizes issue or PR as a support question.

Comments

@a1exus
Copy link

a1exus commented Nov 4, 2019

Hello World!

I'm trying to follow Linux | minikube, yet running into following issue:

I went w/ "None (bare-metal)" for "Hypervisor Setup":

start:

# minikube start --vm-driver=none
😄  minikube v1.5.2 on Centos 8.0.1905
🤹  Running on localhost (CPUs=8, Memory=7724MB, Disk=466979MB) ...
🔄  Retriable failure: create: precreate: exec: "docker": executable file not found in $PATH
🤹  Running on localhost (CPUs=8, Memory=7724MB, Disk=466979MB) ...
🔄  Retriable failure: create: precreate: exec: "docker": executable file not found in $PATH
🤹  Running on localhost (CPUs=8, Memory=7724MB, Disk=466979MB) ...
🔄  Retriable failure: create: precreate: exec: "docker": executable file not found in $PATH
🤹  Running on localhost (CPUs=8, Memory=7724MB, Disk=466979MB) ...
🔄  Retriable failure: create: precreate: exec: "docker": executable file not found in $PATH

💣  Unable to start VM: create: precreate: exec: "docker": executable file not found in $PATH

😿  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
👉  https://github.com/kubernetes/minikube/issues/new/choose
# 

logs:

# minikube logs

💣  api load: filestore "minikube": Docker machine "minikube" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.

😿  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
👉  https://github.com/kubernetes/minikube/issues/new/choose
# docker-machine ls
bash: docker-machine: command not found...
# 

OS:

# cat /etc/redhat-release 
CentOS Linux release 8.0.1905 (Core) 
# uname -a
Linux noc.uftwf.local 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
# 

Is docker and/or docker-machine is prerequisites? if it is, it's not clear (or maybe I just missed it?) Also is it possible to add CentOS for KVM (Hypervisor Setup)?

Please advise.

@afbjorklund
Copy link
Collaborator

If you use the none driver, then docker (or other container runtime) is required to be installed.

You don't need to install docker-machine, that is just a side-effect from using the same library.

@a1exus
Copy link
Author

a1exus commented Nov 4, 2019

@afbjorklund I installed docker runtime, yet still not able to start minikube(

# docker
bash: docker: command not found...
Install package 'podman-docker' to provide command 'docker'? [N/y] y


 * Waiting in queue... 
 * Loading list of packages.... 
The following packages have to be installed:
 container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7.noarch	SELinux policies for container runtimes
 containernetworking-plugins-0.7.4-3.git9ebe139.module_el8.0.0+58+91b614e7.x86_64	Some CNI network plugins, maintained by the containernetworking team.
 containers-common-1:0.1.32-3.git1715c90.module_el8.0.0+58+91b614e7.x86_64	Configuration files for working with image signatures
 criu-3.10-7.el8.x86_64	Tool for Checkpoint/Restore in User-space
 fuse-overlayfs-0.3-2.module_el8.0.0+58+91b614e7.x86_64	FUSE overlay+shiftfs implementation for rootless containers
 fuse3-libs-3.2.1-12.el8.x86_64	File System in Userspace (FUSE) v3 libraries
 libnet-1.1.6-15.el8.x86_64	C library for portable packet creation and injection
 oci-systemd-hook-1:0.1.15-2.git2d0b8a3.module_el8.0.0+58+91b614e7.x86_64	OCI systemd hook for docker
 podman-1.0.5-1.gitf604175.module_el8.0.0+194+ac560166.x86_64	Manage Pods, Containers and Container Images
 podman-docker-1.0.5-1.gitf604175.module_el8.0.0+194+ac560166.noarch	Emulate Docker CLI using podman
 protobuf-c-1.3.0-4.el8.x86_64	C bindings for Google's Protocol Buffers
 runc-1.0.0-55.rc5.dev.git2abd837.module_el8.0.0+58+91b614e7.x86_64	CLI for running Open Containers
 slirp4netns-0.1-2.dev.gitc4e1bc5.module_el8.0.0+58+91b614e7.x86_64	slirp for network namespaces
Proceed with changes? [N/y] y


 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
NAME:
   podman - manage pods and images

USAGE:
   podman [global options] command [command options] [arguments...]

VERSION:
   1.0.5

COMMANDS:
     attach           Attach to a running container
     commit           Create new image based on the changed container
     container        Manage Containers
     build            Build an image using instructions from Dockerfiles
     create           Create but do not start a container
     diff             Inspect changes on container's file systems
     exec             Run a process in a running container
     export           Export container's filesystem contents as a tar archive
     history          Show history of a specified image
     image            Manage images
     images           List images in local storage
     import           Import a tarball to create a filesystem image
     info             Display podman system information
     inspect          Displays the configuration of a container or image
     kill             Kill one or more running containers with a specific signal
     load             Load an image from docker archive
     login            Login to a container registry
     logout           Logout of a container registry
     logs             Fetch the logs of a container
     mount            Mount a working container's root filesystem
     pause            Pauses all the processes in one or more containers
     list, ls, ps     List containers
     pod              Manage pods
     port             List port mappings or a specific mapping for the container
     pull             Pull an image from a registry
     push             Push an image to a specified destination
     restart          Restart one or more containers
     rm               Remove one or more containers
     rmi              Removes one or more images from local storage
     run              Run a command in a new container
     save             Save image to an archive
     search           Search registry for image
     start            Start one or more containers
     stats            Display percentage of CPU, memory, network I/O, block I/O and PIDs for one or more containers
     stop             Stop one or more containers
     tag              Add an additional name to a local image
     top              Display the running processes of a container
     umount, unmount  Unmounts working container's root filesystem
     unpause          Unpause the processes in one or more containers
     version          Display the Podman Version Information
     volume           Manage volumes
     wait             Block on one or more containers
     help, h          Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --cgroup-manager value            cgroup manager to use (cgroupfs or systemd, default systemd)
   --cni-config-dir value            path of the configuration directory for CNI networks
   --conmon value                    path of the conmon binary
   --cpu-profile value               path for the cpu profiling results
   --hooks-dir value                 set the OCI hooks directory path (may be set multiple times)
   --log-level value                 log messages above specified level: debug, info, warn, error (default), fatal or panic (default: "error")
   --namespace value                 set the libpod namespace, used to create separate views of the containers and pods on the system
   --root value                      path to the root directory in which data, including images, is stored
   --tmpdir value                    path to the tmp directory
   --runroot value                   path to the 'run directory' where all state information is stored
   --runtime value                   path to the OCI-compatible binary used to run containers, default is /usr/bin/runc
   --storage-driver value, -s value  select which storage driver is used to manage storage of images and containers (default is overlay)
   --storage-opt value               used to pass an option to the storage driver
   --syslog                          output logging information to syslog as well as the console
   --help, -h                        show help
   --version, -v                     print the version

# minikube start --vm-driver=none
😄  minikube v1.5.2 on Centos 8.0.1905
🤹  Running on localhost (CPUs=8, Memory=7724MB, Disk=466979MB) ...
ℹ️   OS release is CentOS Linux 8 (Core)

💣  Failed to enable container runtime: enable docker.: command failed: sudo systemctl start docker
stdout: 
stderr: Failed to start docker.service: Unit docker.service not found.
: exit status 5

😿  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
👉  https://github.com/kubernetes/minikube/issues/new/choose
# sudo systemctl start docker
Failed to start docker.service: Unit docker.service not found.
# 

@afbjorklund afbjorklund added co/none-driver kind/support Categorizes issue or PR as a support question. labels Nov 4, 2019
@afbjorklund
Copy link
Collaborator

Installing docker-podman is not going to help, since it uses the docker daemon.

If you want to use the same backend as podman, better to go for cri-o instead.

@afbjorklund
Copy link
Collaborator

Unfortunately there are still lots of issues when trying to run on CentOS localhost.

So it would probably be easier to use the kvm2 driver and the normal ISO instead

@a1exus
Copy link
Author

a1exus commented Nov 4, 2019

@afbjorklund CentOS isn't listed in https://minikube.sigs.k8s.io/docs/start/linux/#hypervisor-setup

# egrep -q 'vmx|svm' /proc/cpuinfo && echo yes || echo no
yes
# virt-host-validate
bash: virt-host-validate: command not found...
Install package 'libvirt-client' to provide command 'virt-host-validate'? [N/y] y


 * Waiting in queue... 
 * Loading list of packages.... 
The following packages have to be installed:
 autogen-libopts-5.18.12-7.el8.x86_64	Automated option processing library based on autogen
 gnutls-dane-3.6.5-2.el8.x86_64	A DANE protocol implementation for GnuTLS
 gnutls-utils-3.6.5-2.el8.x86_64	Command line tools for TLS protocol
 libvirt-bash-completion-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64	Bash completion script
 libvirt-client-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64	Client side utilities of the libvirt library
Proceed with changes? [N/y] y


 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 
  QEMU: Checking for hardware virtualization                                 : PASS
  QEMU: Checking if device /dev/kvm exists                                   : FAIL (Check that the 'kvm-intel' or 'kvm-amd' modules are loaded & the BIOS has enabled virtualization)
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpu' controller mount-point                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'cpuset' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'devices' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for cgroup 'blkio' controller mount-point                   : PASS
  QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)

# virsh list
 Id    Name                           State
----------------------------------------------------

# 

@afbjorklund
Copy link
Collaborator

Are you trying to run this in a virtualized environment ? Or do you need to enable it in the BIOS ?

@a1exus
Copy link
Author

a1exus commented Nov 4, 2019

@afbjorklund I'm using bare-metal system w/ CentOS8.

# egrep -q 'vmx|svm' /proc/cpuinfo && echo yes || echo no
yes
# 

@a1exus
Copy link
Author

a1exus commented Nov 4, 2019

# sudo dnf --assumeyes install libvirt qemu-kvm
Last metadata expiration check: 0:24:22 ago on Mon 04 Nov 2019 12:20:19 PM EST.
Package qemu-kvm-15:2.12.0-65.module_el8.0.0+189+f9babebb.5.x86_64 is already installed.
Dependencies resolved.
=========================================================================================================
 Package                          Arch     Version                                     Repository   Size
=========================================================================================================
Installing:
 libvirt                          x86_64   4.5.0-24.3.module_el8.0.0+189+f9babebb      AppStream    26 k
Installing dependencies:
 libvirt-daemon-config-nwfilter   x86_64   4.5.0-24.3.module_el8.0.0+189+f9babebb      AppStream    32 k

Transaction Summary
=========================================================================================================
Install  2 Packages

Total download size: 58 k
Installed size: 15 k
Downloading Packages:
(1/2): libvirt-daemon-config-nwfilter-4.5.0-24.3.module_el8.0.0+189+f9ba  30 kB/s |  32 kB     00:01    
(2/2): libvirt-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64.rpm          25 kB/s |  26 kB     00:01    
---------------------------------------------------------------------------------------------------------
Total                                                                     27 kB/s |  58 kB     00:02     
warning: /var/cache/dnf/AppStream-a520ed22b0a8a736/packages/libvirt-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
CentOS-8 - AppStream                                                     1.6 MB/s | 1.6 kB     00:00    
Importing GPG key 0x8483C65D:
 Userid     : "CentOS (CentOS Official Signing Key) <[email protected]>"
 Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                 1/1 
  Installing       : libvirt-daemon-config-nwfilter-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64    1/2 
  Running scriptlet: libvirt-daemon-config-nwfilter-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64    1/2 
  Installing       : libvirt-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64                           2/2 
  Running scriptlet: libvirt-daemon-config-nwfilter-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64    2/2 
  Verifying        : libvirt-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64                           1/2 
  Verifying        : libvirt-daemon-config-nwfilter-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64    2/2 

Installed:
  libvirt-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64                                                  
  libvirt-daemon-config-nwfilter-4.5.0-24.3.module_el8.0.0+189+f9babebb.x86_64                           

Complete!
# virt-host-validate
  QEMU: Checking for hardware virtualization                                 : PASS
  QEMU: Checking if device /dev/kvm exists                                   : FAIL (Check that the 'kvm-intel' or 'kvm-amd' modules are loaded & the BIOS has enabled virtualization)
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpu' controller mount-point                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuacct' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'cpuset' controller mount-point                  : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'devices' controller mount-point                 : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for cgroup 'blkio' controller mount-point                   : PASS
  QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)
# minikube start --vm-driver=kvm2
😄  minikube v1.5.2 on Centos 8.0.1905

⚠️  'kvm2' driver reported a possible issue: /usr/bin/virsh domcapabilities --virttype kvm failed:
error: failed to get emulator capabilities
error: invalid argument: KVM is not supported by '/usr/libexec/qemu-kvm' on this host
💡  Suggestion: Follow your Linux distribution instructions for configuring KVM
📘  Documentation: https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/

💥  The existing "minikube" VM that was created using the "none" driver, and is incompatible with the "kvm2" driver.
👉  To proceed, either:
      1) Delete the existing VM using: 'minikube delete'
      or
      2) Restart with the existing driver: 'minikube start --vm-driver=none'
💣  Exiting due to driver incompatibility
# 

@afbjorklund
Copy link
Collaborator

Going multiple paths here... I suppose we could give better links / information to both of them.

  1. Using the none driver to run natively on RHEL/CentOS
    This needs better documentation, like how to disable SELinux and how to install dockerd/cri-o

  2. How to verify that the libvirt/KVM installation is working
    Minikube has a kvm2 driver for this virtualization (or virtualbox), but it needs to be installed

For now, the upstream instructions are aimed towards centos-7. Lots of things broken in centos-8.

@a1exus
Copy link
Author

a1exus commented Nov 6, 2019

Going multiple paths here... I suppose we could give better links / information to both of them.

  1. Using the none driver to run natively on RHEL/CentOS
    This needs better documentation, like how to disable SELinux and how to install dockerd/cri-o

yes, please!

  1. How to verify that the libvirt/KVM installation is working
    Minikube has a kvm2 driver for this virtualization (or virtualbox), but it needs to be installed
# minikube start --vm-driver=virtualbox
😄  minikube v1.5.2 on Centos 8.0.1905
💥  The existing "minikube" VM that was created using the "none" driver, and is incompatible with the "virtualbox" driver.
👉  To proceed, either:
      1) Delete the existing VM using: 'minikube delete'
      or
      2) Restart with the existing driver: 'minikube start --vm-driver=none'
💣  Exiting due to driver incompatibility
# 
# rpm -qa | grep ^VirtualBox
VirtualBox-6.0-6.0.14_133895_el8-1.x86_64
# 

For now, the upstream instructions are aimed towards centos-7. Lots of things broken in centos-8.

sigh

Thank you so much for all your help!

@medyagh
Copy link
Member

medyagh commented Dec 17, 2019

I believe this issue ben addresed by this PR #5854

@medyagh medyagh closed this as completed Dec 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
co/none-driver kind/support Categorizes issue or PR as a support question.
Projects
None yet
Development

No branches or pull requests

3 participants