应用在dockerfile中使用APT-GET安装的应用在哪里



我是Docker的新手。我在Windows机器上。我写了这个dockerfile:

FROM ubuntu:xenial
MAINTAINER myname@mycompany.de
EXPOSE 1883 1883
RUN apt-get update && apt-get install mosquitto -y
CMD ["mosquitto"]

这很成功:我能够建立&启动图像,然后我也能够将客户端连接到蚊子服务器 - 因此,这意味着蚊子服务器在Docker-Container中运行。

作为下一个测试案例,我想覆盖默认的蚊子 - config-fig,因此我认为我可以在Dockerfile中使用ADD语句(然后重建)。但是,因此我需要知道蚊子安装在哪里。我进入VM,我期望/etc/mosquitto中的蚊子,但是没有这样的文件夹。

1)蚊子在哪里?

2)为什么在VM中的SSH时我不能运行mosquitto("找不到") - 但是CMD ["mosquitto"]工作?

3)在我的情况下使用ADD是最好的做法吗?

您的蚊子不在您的VM内,而在容器内部,要进入容器内(必须运行)您可以尝试:

docker exec -it <containerID> /bin/bash

现在您在容器中,可以找到蚊子。

这是一个很好的练习,请使用ADD,但请记住重新构建您的容器以应用此更改。

我不确定文件存储在哪里,但是在docker-machine ssh之后,您可以转到文件夹/var/lib/docker/aufs/aufs/diff/oh/var/lib/lib/lib/Docker/aufs/mnt/作为root,并研究您的方式。另外,最好使用复制命令将自定义配置文件添加到Dockerfile本身中。确保将您的配置文件放在适当的文件夹中,例如app/config/..等。

最新更新