【发布时间】:2021-11-14 11:00:54
【问题描述】:
在我的公司,我们有安全团队创建的加固容器,我想用另一个 docker 镜像扩展加固的容器。例如,如果我们有一个加固的 Debian 容器,我想添加 Apache,我该怎么做?
我知道我可以使用FROM 来使用基础,但我所看到的示例中,不会向现有基础添加另一个级别的已发布图像,而是特定命令。我是否只是转到官方 Dockerhub Apache (HTTP) 映像,然后从 github 存储库复制并粘贴命令?我假设有一种更清洁的方法(但不确定是否有)。
例如,我是否
FROM mycompanyprivaterepo/Debian:latest
//some command?
FROM httpd
docker build -t mynewimagewithapache
更新: 在每个 cmets 尝试通过 apt-get apache2 后,它一直挂在交互式问题上,在 cmets 的帮助下使用: 我的 Dockerfile:
FROM myprivaterepo/hardened-ubuntu
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get -qq install apache2
并通过以下方式构建:
$ docker build -t hardened-ubuntu-apache
【问题讨论】:
-
一般来说,你会在你的dockerfile中使用
RUN,然后运行apt-get包管理器来安装apache。你试过吗? -
@NickODell。我没有,我认为这种类型的活动有一个特定的 docker 命令。我假设一些简单的事情: RUN apt-get -y install httpd?后面有什么吗?还是直接移到构建之后?
-
I assumed there was a specific docker command for this type of activity.我不这么认为。组合多个图像的唯一方法是使用多阶段构建。但是如果你有一些更简单的选择,比如使用包管理器,使用多阶段构建通常是一个坏主意。你试过this example之类的吗? -
@NickODell 我试过了,但安装挂起一个交互式问题(“选择地理区域”),我以为 -y 会处理它,但显然不是。
-
那是 debconf。将 debconf 设置为非交互式或设置您的时区。 askubuntu.com/questions/909277/…
标签: docker containers extending