Docker - Ubuntu - bash: ping: command not found
Alternatively you can use a Docker image which already has ping installed, e.g. busybox:
docker run --rm busybox ping SERVER_NAME -c 2
Docker images are pretty minimal, but you can install ping
in your official ubuntu docker image via:
apt-get update
apt-get install iputils-ping
Chances are you don't need ping
on your image, and just want to use it for testing purposes. Above example will help you out.
But if you need ping
to exist on your image, you can create a Dockerfile
or commit
the container you ran the above commands into a new image.
Commit:
docker commit -m "Installed iputils-ping" --author "Your Name <[email protected]>" ContainerNameOrId yourrepository/imagename:tag
Dockerfile:
FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash
Please note there are best practices on creating docker images, like clearing apt cache files afterwards and etc.
This is the Docker Hub page for Ubuntu and this is how it is created. It only has (somewhat) bare minimum packages installed, thus if you need anything extra you need to install it yourself.
apt-get update && apt-get install -y iputils-ping
However usually you'd create a "Dockerfile" and build it:
mkdir ubuntu_with_ping
cat >ubuntu_with_ping/Dockerfile <<'EOF'
FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash
EOF
docker build -t ubuntu_with_ping ubuntu_with_ping
docker run -it ubuntu_with_ping
Please use Google to find tutorials and browse existing Dockerfiles to see how they usually do things :) For example image size should be minimized by running apt-get clean && rm -rf /var/lib/apt/lists/*
after apt-get install
commands.