在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"] 

这是成功的:我能够构build并启动映像,之后我也能够将客户端连接到mosquitto服务器 – 这意味着mosquitto服务器在docker-container中运行。

作为下一个testing用例,我想覆盖默认的mosquitto-config-file,所以我想我可以在我的Dockerfile中使用ADD语句(然后重build)。 但是,我需要知道蚊子的安装位置。 我ssh进入虚拟机,我希望在/etc/mosquitto ,但没有这样的文件夹。

1)蚊子在哪里?

2)为什么我不能运行mosquitto (“未find”),而在虚拟机ssh – 但CMD ["mosquitto"]作品?

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

你的蚊子不在你的虚拟机内部,而是在你的容器内,进入你的容器(它必须运行),你可以尝试做:

 docker exec -it <containerID> /bin/bash 

现在你在你的容器里,你可以find蚊子。

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

我不确定文件在哪里存储,但是在docker-machine ssh之后,你可以到/ var / lib / docker / aufs / diff /或/ var / lib / docker / aufs / mnt /方式。 或者,最好使用COPY命令将自定义configuration文件添加到Dockerfile本身中。 确保把你的configuration文件放在适当的文件夹,比如app / config / ..等