Docker - Ubuntu - bash ping command not found
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
In modern software development, using containerization technologies like Docker has become a standard practice for deploying, scaling, and managing applications. One popular base image for Docker containers is Ubuntu, offering a reliable and familiar environment. However, developers occasionally encounter issues such as the "bash: ping: command not found" error. This article discusses this specific error, why it occurs, and how to resolve it using technical explanations and examples.
Understanding the Root of the Issue
Background: Ubuntu and Minimal Images
When you pull an Ubuntu image from Docker Hub, it's typically a slim version designed for lightweight deployment and efficiency. This minimalistic approach means that certain utility programs, including network diagnostic tools like ping, might not be pre-installed. The absence of the ping command becomes apparent when executing it inside a Docker container, resulting in the error:
The Purpose of the ping Command
The ping command is a network utility used to test the reachability of a host on an Internet Protocol (IP) network. It measures the round-trip time for packets sent to a destination and acknowledges the responses. Lack of this command can hinder networking diagnostics inside a Docker container.
Resolving the "ping: command not found" Error
Installing iputils-ping
To address this error, you need to install the ping utility. It is part of the iputils package suite, which contains various networking-related tools. The iputils-ping package can be installed using the apt package manager. Below is a step-by-step solution for resolving this issue:
- Access the Container's Shell:Start your Ubuntu-based Docker container and access its shell using:
- Update Package Lists:Before installation, ensure your package lists are up to date:
- Install
iputils-ping:To install thepingcommand, run the following:
- Verify Installation:Confirm that the installation was successful by executing
ping:
This will send 4 ICMP packets to Google's public DNS and display the round-trip times.
Automating the Installation
If you frequently encounter this issue across multiple containers, automate the installation by creating a custom Dockerfile that extends the Ubuntu base image:
Build the custom image with:
Run containers with the command:
Additional Considerations
Network Access within Docker Containers
When using the ping command inside containers, ensure that your networking setup allows ICMP packets. Docker’s default network mode should handle this without issues, but customized network configurations can occasionally block ping traffic.
Security Implications
Containers should adhere to the principle of least privilege. Consider whether the ping utility is necessary for your use case, as it could potentially be used for mischief or revealing network topology, especially in multi-tenant environments.
Table Summary
Below is a table summarizing the key points:
| Topic | Details |
| Error | bash: ping: command not found |
| Environment | Docker container using Ubuntu |
| Missing Package | iputils-ping |
| Solution - Steps | 1. Update package lists
2. Install iputils-ping
3. Verify |
| Automation | Use a Dockerfile to automate installation |
| Network Considerations | Ensure ICMP is permitted on container's network |
Conclusion
Encountering the "bash: ping: command not found" error within a Docker Ubuntu container is a straightforward problem with a simple solution. Understanding how to address package management and installation commands in a containerized environment enhances efficiency and enables effective network diagnostics. Remember to consider the security and necessity of each tool you add to your containers, aiming for lean yet fully functional deployments.
Related reading
- Docker - Unable to locate package docker-engine
- Docker - unable to prepare context unable to evaluate symlinks in Dockerfile path GetFileAttributesEx
- docker access to the requested resource is not authorized
- Docker Add a restart policy to a container that was already created
- Docker build fails due to kafka undefined error
- docker build requires 1 argument. See 'docker build --help
- Docker adding a file from a parent directory
- Docker and securing passwords

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.