Docker - Ubuntu - bash: ping: command not found

啊啊 发表于: 2021-08-23   最后更新时间: 2021-09-03 23:03:01   1,451 游览

我有一个运行 Ubuntu 的 Docker 容器,我做了如下操作:

docker run -it ubuntu /bin/bash

但是它没有ping命令,报错:

bash: ping: command not found

ubuntu镜像缺少一个非常基本的命令,我想在任何时候ping命令都在,我该如何做?

发表于 2021-08-23

Docker 希望初始镜像尽量的小,所以剔除了很多命令,但是可以通过以下方式在官方 ubuntu docker 镜像中安装 ping:

apt-get update
apt-get install iputils-ping

有可能你只是临时需要使用ping命令,用于测试目的,上面的例子将帮助你解决这个问题。

但是如果你需要ping一直在你的镜像上,你可以创建一个Dockerfile或者将你运行上述命令的容器提交到一个新的镜像中。

Commit:

docker commit -m "Installed iputils-ping" --author "Your Name name@domain.com" ContainerNameOrId yourrepository/imagename:tag

Dockerfile:

FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash

注意,在创建docker镜像时有一些最佳做法,比如在创建后清除apt缓存文件等等,让镜像尽可能的小。

或者,你可以使用已经安装了ping的Docker镜像,例如busybox

docker run --rm busybox ping SERVER_NAME -c 2

楼上的都是正解,希望楼主真正理解docker容器。

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题