我有一个运行Ubuntu的Docker容器,我这样做:
docker run -it ubuntu /bin/bash
但是它似乎没有ping。如。
bash: ping: command not found
我需要安装它吗?
这似乎是最基本的命令。我尝试了whereis ping,它没有报告任何东西。
我有一个运行Ubuntu的Docker容器,我这样做:
docker run -it ubuntu /bin/bash
但是它似乎没有ping。如。
bash: ping: command not found
我需要安装它吗?
这似乎是最基本的命令。我尝试了whereis ping,它没有报告任何东西。
当前回答
每次你遇到这种错误
bash: <command>: command not found
在已经使用该命令的主机上使用此解决方案: dpkg -S $(<命令>) 没有安装该软件包的主机?试试这个: apt文件搜索/bin/<命令>
其他回答
Docker镜像是非常小的,但是你可以通过以下方式在你的官方Docker镜像中安装ping:
apt-get update -y
apt-get install -y iputils-ping
您可能不需要对映像进行ping,而只是想将其用于测试目的。上面的例子会帮助你。
但是,如果您需要ping存在于映像上,则可以创建Dockerfile或将运行上述命令的容器提交到新映像中。
提交:
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缓存文件等等。
这是Ubuntu的Docker Hub页面,它是这样创建的。它只安装了最少的包,因此如果你需要任何额外的包,你需要自己安装。
apt-get update && apt-get install -y iputils-ping
然而,通常你会创建一个“Dockerfile”并构建它:
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
请使用谷歌找到教程,浏览现有的Dockerfiles,看看它们通常是如何做的:)例如,在apt-get安装命令后,应该通过运行apt-get clean && rm -rf /var/lib/apt/lists/*来最小化图像大小。
我在debian 10上使用了下面的语句
apt-get install iputils-ping
或者你也可以使用一个已经安装了ping的Docker镜像,例如busybox:
docker run --rm busybox ping SERVER_NAME -c 2
有时,Docker中Linux的最小安装没有定义路径,因此有必要使用....调用ping
cd /usr/sbin
ping <ip>