我是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/..等。