Docker - Ubuntu - bash: ping: command not found [closed]
TLDR
If you see bash: ping: command not found
in an Ubuntu-based Docker container, install the iputils-ping
package using apt-get install
.
The ping
command is often used to test network connectivity, but it may not be available in minimal Ubuntu-based Docker images. This guide explains how to resolve the issue and why it happens.
Why Is ping Missing?
Minimal Docker images, like ubuntu:latest
, exclude many utilities to keep the image size small. The ping
command is part of the iputils-ping
package, which is not installed by default.
Installing ping in a Docker Container
To install ping
, you need to update the package list and install the iputils-ping
package:
# Start a shell in the container
docker exec -it <container_name_or_id> bash
# Update package list
apt-get update
# Install iputils-ping
apt-get install -y iputils-ping
Now you can use the ping
command inside the container.
Making the Change Persistent
If you frequently need ping
in your containers, add it to your Dockerfile:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y iputils-ping
Build the image:
docker build -t ubuntu-with-ping .
This way, every time you run a container from this image, ping
will be available. For example:
docker run --rm -it ubuntu-with-ping bash
You can now use ping
without any issues.
Best Practices
- Use minimal images for production to reduce attack surface.
- Only install tools like
ping
when needed for debugging or testing. - Document any manual changes to containers.
By following these steps, you can quickly resolve the ping: command not found
error and ensure your containers have the tools you need.
Good luck with your project!
Found an issue?