我有一个运行 Ubuntu 的 Docker 容器,我做了如下操作:
docker run -it ubuntu /bin/bash
但是它似乎没有 ping
。例如
bash: ping: command not found
我需要安装它吗?
似乎缺少一个非常基本的命令。我试过 whereis ping
没有报告任何内容。
原文由 Snowcrash 发布,翻译遵循 CC BY-SA 4.0 许可协议
这 是 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
请使用 Google 查找教程并浏览现有的 Dockerfile 以了解它们通常是如何做事的 :) 例如,应通过在 apt-get install
命令之后运行 apt-get clean && rm -rf /var/lib/apt/lists/*
来最小化图像大小。
原文由 NikoNyrh 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答776 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答2.9k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
Docker 镜像非常小,但您可以通过以下方式在官方 ubuntu docker 镜像中安装
ping
:您可能不需要
ping
在您的图像上,而只是想将其用于测试目的。上面的例子会帮助你。但是,如果您需要
ping
存在于您的图像上,您可以创建一个Dockerfile
或commit
将上述命令运行到新图像中的容器。犯罪:
Dockerfile:
请注意,创建 docker 镜像有一些最佳实践,比如事后清除 apt 缓存文件等。