无法从 ubuntu docker 容器内 ping google

Unable to ping google from inside ubuntu docker container

我是 docker 和 linux 的新手,我正在尝试从 docker 容器内 ping google。我收到以下错误....

vagrant@vagrant-ubuntu-trusty-64:~$ docker run ubuntu ping google.com
docker: Error response from daemon: OCI runtime create failed:
container_linux.go:348: starting container process caused "exec: \"ping\":
executable file not found in $PATH": unknown.

如上所述,我在 vagrant 上使用 ubuntu/trusty64 box

我在我的 vagrantfile

中启用了 public 网络
  # Create a public network, which generally matched to bridged network.
  # Bridged networks make the machine appear as another physical device on
  # your network.
  config.vm.network "public_network"

并且可以从 VM

ping google
vagrant@vagrant-ubuntu-trusty-64:~$ ping google.com
PING google.com (216.58.204.46) 56(84) bytes of data.
64 bytes from lhr25s12-in-f14.1e100.net (216.58.204.46): icmp_seq=1 ttl=52 time=29.5 ms
64 bytes from lhr25s12-in-f14.1e100.net (216.58.204.46): icmp_seq=2 ttl=52 time=36.2 ms
64 bytes from lhr25s12-in-f14.1e100.net (216.58.204.46): icmp_seq=3 ttl=52 time=95.7 ms

但似乎不在 docker 容器内。

我试过这个解决方案,但没有用 - https://odino.org/cannot-connect-to-the-internet-from-your-docker-containers/

这可能是什么问题?

谢谢,

错误消息告诉您 "ping" 命令未包含在 ubuntu 基本映像中。 Docker 图像被精简了,您需要在其中安装您想要 运行 的任何应用程序。如果您 运行 带有 /bin/bash 的容器,您可以在该容器中安装 ping:

apt-get update && apt-get install iputils-ping

您可以在 nicolaka/netshoot 中找到预装的 ping 和许多其他网络工具,我喜欢它们用于网络故障排除:

docker run -it --rm nicolaka/netshoot ping www.google.com