在 docker 中安装 ping 的问题

79 linux ubuntu installation docker

我正在尝试遵循 docker 教程,但是在虚拟机中。我尝试使用以下命令在 ubuntu docker 容器中安装 ping

sudo docker run ubuntu apt-get install ping
Run Code Online (Sandbox Code Playgroud)

问题是docker没有安装任何东西,给出的答案如下

$ sudo docker run ubuntu apt-get install ping
Reading package lists...
Building dependency tree...
Package ping is a virtual package provided by:
  inetutils-ping 2:1.8-6
  iputils-ping 3:20101006-1ubuntu1

E: Package 'ping' has no installation candidate
$
Run Code Online (Sandbox Code Playgroud)

当我尝试安装任何东西时会出现同样的问题。

这些是我的图像:

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>              <none>              3a28cc5bcc53        19 minutes ago      247.6 MB
baselDaemon         latest              4e892058b0b2        4 days ago          204.4 MB
ubuntu              13.10               9f676bd305a4        2 weeks ago         178 MB
ubuntu              saucy               9f676bd305a4        2 weeks ago         178 MB
ubuntu              13.04               eb601b8965b8        2 weeks ago         166.5 MB
ubuntu              raring              eb601b8965b8        2 weeks ago         166.5 MB
ubuntu              12.10               5ac751e8d623        2 weeks ago         161 MB
ubuntu              quantal             5ac751e8d623        2 weeks ago         161 MB
ubuntu              10.04               9cc9ea5ea540        2 weeks ago         180.8 MB
ubuntu              lucid               9cc9ea5ea540        2 weeks ago         180.8 MB
ubuntu              12.04               9cd978db300e        2 weeks ago         204.4 MB
ubuntu              latest              9cd978db300e        2 weeks ago         204.4 MB
ubuntu              precise             9cd978db300e        2 weeks ago         204.4 MB
learn/tutorial      latest              8dbd9e392a96        10 months ago       128 MB
Run Code Online (Sandbox Code Playgroud)

另外,当我运行sudo docker run ubuntu apt-get install ping这里使用的“ubuntu”是什么?

先感谢您。

VTa*_*ius 93

根据:

Package ping is a virtual package provided by:
  inetutils-ping 2:1.8-6
  iputils-ping 3:20101006-1ubuntu1

E: Package 'ping' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

尝试:

sudo docker run ubuntu apt-get install iputils-ping
Run Code Online (Sandbox Code Playgroud)

您选择一个带有 repository:tag 的“ubuntu”代替 RUN 命令中的 IMAGE

sudo docker run ubuntu:lucid command
Run Code Online (Sandbox Code Playgroud)

  • 您运行哪个命令来获取此信息“Package ping is a virtual package provided by: ...”? (2认同)

Mic*_*arf 26

apt-get update在安装前运行一次:

sudo docker run ubuntu apt-get update
Run Code Online (Sandbox Code Playgroud)

看看有什么作用sudo apt-get update

apt-get update 从存储库下载包列表并“更新”它们以获取有关包及其依赖项的最新版本的信息。

  • 这工作得很好。docker run -it ubuntu bash,然后: apt-get update;apt-get 安装 iputils-ping (2认同)

小智 14

是的,最终您需要了解三个不同的主题:

  1. 码头工人
  2. Ubuntu
  3. APT 存储库

下面是我想让 Ubuntu 在 Docker 容器中运行的方式:

docker run -i -t ubuntu:16.04 /bin/bash
Run Code Online (Sandbox Code Playgroud)

回应@Michael_Scharf 的建议,以下是您更新 APT 存储库的方法:

apt-get update
Run Code Online (Sandbox Code Playgroud)

然后回到@VTacius 的解决方案,以下是安装负责 ping 命令的 IP 实用程序的方法:

apt-get install iputils-ping
Run Code Online (Sandbox Code Playgroud)

然后验证事情是否按预期工作:

which ping
ping superuser.com
Run Code Online (Sandbox Code Playgroud)