Docker - Ubuntu - bash: ping: 命令未找到
Docker - Ubuntu - bash: ping: command not found
我有一个 Docker 容器 运行 Ubuntu 我做了如下操作:
docker run -it ubuntu /bin/bash
不过好像没有ping
。例如
bash: ping: command not found
我需要安装吗?
似乎缺少一个非常基本的命令。我试过 whereis ping
没有报告任何东西。
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
Docker文件:
FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash
请注意创建 docker 图像的最佳实践,例如事后清除 apt 缓存文件等。
This is the Docker Hub page for Ubuntu and this就是这样创建的。它只安装了(有些)最低限度的软件包,因此如果您需要任何额外的东西,您需要自己安装它。
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 以了解它们通常是如何做的:) 例如图像大小应在 [=13] 之后按 运行 apt-get clean && rm -rf /var/lib/apt/lists/*
最小化=] 命令。
或者您可以使用已经安装了 ping 的 Docker 图像,例如busybox:
docker run --rm busybox ping SERVER_NAME -c 2
通常人们拉取 Ubuntu/CentOS 的官方图像,但他们没有意识到这些图像是最小的,上面没有任何东西。
对于 Ubuntu,此映像是根据 Canonical 提供的官方 rootfs tarball 构建的。鉴于它是 Ubuntu 的最小安装,此映像默认仅包含 C、C.UTF-8 和 POSIX 语言环境。
可以在容器上安装 net-tools(包括 ifconfig、netstat)、ip-utils(包括 ping)和其他喜欢的 curl 等,并且可以从容器创建映像,或者可以编写 Dockerfile 在创建映像时安装这些工具.
下面是 Dockerfile 示例,从中创建镜像时,它将包括这些工具:
FROM vkitpro/ubuntu16.04
RUN apt-get update -y \
&& apt-get upgrade -y \
&& apt-get install iputils-ping -y \
&& apt-get install net-tools -y \
CMD bash
或者从基础镜像启动容器并在容器上安装这些实用程序,然后提交到镜像。
docker commit -m "any descriptive message" container_id image_name:lattest
该图像将安装所有东西。
每次遇到这种错误
bash: <command>: command not found
在主机上,该命令已经与 this solution:
一起工作
dpkg -S $(which <command>)
没有安装该软件包的主机? Try this:
apt-file search /bin/<command>
有时,Docker 中 Linux 的最小安装没有定义路径,因此需要使用 ....
调用 ping
cd /usr/sbin
ping <ip>
我在 debian 10 上使用了下面的语句
apt-get install iputils-ping
我有一个 Docker 容器 运行 Ubuntu 我做了如下操作:
docker run -it ubuntu /bin/bash
不过好像没有ping
。例如
bash: ping: command not found
我需要安装吗?
似乎缺少一个非常基本的命令。我试过 whereis ping
没有报告任何东西。
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
Docker文件:
FROM ubuntu
RUN apt-get update && apt-get install -y iputils-ping
CMD bash
请注意创建 docker 图像的最佳实践,例如事后清除 apt 缓存文件等。
This is the Docker Hub page for Ubuntu and this就是这样创建的。它只安装了(有些)最低限度的软件包,因此如果您需要任何额外的东西,您需要自己安装它。
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 以了解它们通常是如何做的:) 例如图像大小应在 [=13] 之后按 运行 apt-get clean && rm -rf /var/lib/apt/lists/*
最小化=] 命令。
或者您可以使用已经安装了 ping 的 Docker 图像,例如busybox:
docker run --rm busybox ping SERVER_NAME -c 2
通常人们拉取 Ubuntu/CentOS 的官方图像,但他们没有意识到这些图像是最小的,上面没有任何东西。
对于 Ubuntu,此映像是根据 Canonical 提供的官方 rootfs tarball 构建的。鉴于它是 Ubuntu 的最小安装,此映像默认仅包含 C、C.UTF-8 和 POSIX 语言环境。
可以在容器上安装 net-tools(包括 ifconfig、netstat)、ip-utils(包括 ping)和其他喜欢的 curl 等,并且可以从容器创建映像,或者可以编写 Dockerfile 在创建映像时安装这些工具.
下面是 Dockerfile 示例,从中创建镜像时,它将包括这些工具:
FROM vkitpro/ubuntu16.04
RUN apt-get update -y \
&& apt-get upgrade -y \
&& apt-get install iputils-ping -y \
&& apt-get install net-tools -y \
CMD bash
或者从基础镜像启动容器并在容器上安装这些实用程序,然后提交到镜像。 docker commit -m "any descriptive message" container_id image_name:lattest
该图像将安装所有东西。
每次遇到这种错误
bash: <command>: command not found
在主机上,该命令已经与 this solution:
一起工作dpkg -S $(which <command>)
没有安装该软件包的主机? Try this:
apt-file search /bin/<command>
有时,Docker 中 Linux 的最小安装没有定义路径,因此需要使用 ....
调用 pingcd /usr/sbin
ping <ip>
我在 debian 10 上使用了下面的语句
apt-get install iputils-ping