在Dockerfile中使用apt-get安装的应用程序在哪里?

时间:2016-06-21 11:49:30

标签: docker dockerfile docker-machine

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

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

成功了:我能够建立和发展启动图像,之后我还能够将客户端连接到mosquitto-server - 这意味着mosquitto-server正在docker-container中运行。

作为下一个测试用例,我想覆盖默认的mosquitto-config文件,所以我想我可以在我的Dockerfile中使用ADD语句(然后重建)。但因此我需要知道 mosquitto 的安装位置。我进入虚拟机,我期待/etc/mosquitto中的mosquitto,但是没有这样的文件夹。

1)mosquitto在哪里?

2)为什么我不能在VM中使用ssh时运行mosquitto(“未找到”) - 但CMD ["mosquitto"]有效?

3)在我的案例中使用ADD是最佳做法吗?

2 个答案:

答案 0 :(得分:1)

您的蚊子不在您的虚拟机内但在您的容器内,要进入您的容器(必须运行),您可以尝试:

docker exec -it <containerID> /bin/bash

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

使用ADD是一种很好的做法,但请记住重新构建容器以应用此更改。

答案 1 :(得分:0)

我不确定文件存储的确切位置但是在docker-machine ssh之后你可以以root身份转到文件夹/ var / lib / docker / aufs / diff /或/ var / lib / docker / aufs / mnt /并调查你的方式。 或者,最好使用COPY命令在Dockerfile本身中添加自定义配置文件。确保将配置文件放在app / config / ..等相应的文件夹中。