我从 debian:wheezy 创建了一个 docker 映像,以遵循教程。我只是想知道这个图像有多大用处,因为它不支持很多命令。例如:
“nc”,还有(列表可能很长)、vi、ps、apt、wget、dpkg ...
我只是在寻找一种安装 netcat 工具并最终在容器中运行此脚本的方法:
#!/bin/sh
printf "Logging Mailer has started.\n"
while true
do
MESSAGE=$(nc -l -p 33333)
printf "[Message]: %s\n" "$MESSAGE" > $1
sleep 1
done
当然这是行不通的。知道如何扩展图像以支持更多命令吗?谢谢,我希望这不是题外话。
答案1
您遇到两个问题:
- 良好的容器基础镜像的要点是提供一个最小但可行的基础,在此基础上构建应用程序所需的任何内容;
- 不出所料,Wheezy 镜像包含 Wheezy 时代的软件包。
你将要找到安装其他软件包所需的必需品,因此dpkg
和apt-get
都存在。该apt
命令在 Wheezy 中不存在,因此不可用。当 Wheezy 仍然相关时,您可以通过运行apt-get update
(因为映像附带没有索引,以减少其大小)来安装其他软件包,然后运行apt-get install ...
.但这将不再起作用,因为 Wheezy 包存储库不再可以从/etc/apt/sources.list
图像内引用的位置获得。
我不会解释如何修复 Wheezy 图像,因为您不应该将其用于任何新用途。你现在应该使用debian:stretch
。