新来的Docker – 如何基本上做一个可复制的设置?
我的目标是使用Docker创build运行postfix + dovecot的邮件设置,完全configuration并准备就绪(在Ubuntu 14.04上),所以我可以轻松部署到多台服务器上。 就我所了解的Docker而言,执行此操作的过程是:
- 旋转一个新的容器(
docker run -it ubuntu bash
)。 - 安装和configurationpostfix和dovecot。
- 如果我需要closures并rest一下,我可以通过
docker start <id>
然后通过docker attach <id>
退出shell并返回到容器。
(这里是事情变得模糊的地方)
在这一点上,将图像导出到一个文件,在另一台服务器上导入并运行它会更好吗? 如何确保容器在运行后自动启动postfix,dovecot和其他服务? 我也不太了解使用Dockerfile来自动安装的区别,只是手动安装和导出图像。
-
使用Dockerfileconfiguration多个Docker镜像
每个docker集装箱只能运行一个服务。 所以,一个容器为后缀,一个为另一个服务等。你可以让你的运行容器相互沟通
-
build立这些图像
-
将这些图像推送到registry,以便您可以轻松地将它们拉到不同的服务器上,并具有相同的设置。
-
将这些图像拉到不同的服务器上。 您可以在启动容器来configuration它时传递ENVvariables。
您不应该直接在正在运行的容器中安装某些东西。 这打破了与Docker的可重复安装的阴霾。
你的第二步应该是一个Dockerfile
的RUN
条目,然后用来运行Dockerfile
docker build
来创build一个映像。
这个图像可以用来根据需要启动和停止运行容器。 请参阅Dockerfile RUN条目文档。 这通常与apt-get install
一起使用来安装所需的组件。
ENTRYPOINT
中的ENTRYPOINT应设置为启动您的服务。 一般来说,build议每个图像只有一个进程。
- Docker-Compose问题与容器名称
- 如何输出除Go模板键或字段的第一个字符以外的所有字符?
- 如何将docker设置回默认configuration
- 如何使用supervisor在docker容器上运行elasticsearch?
- 无法连接到存储在Azure虚拟机上的Nexus 3预览版上的Dockerregistry
- 为什么Docker的秘密比环境variables更安全?
- Docker无法在Windows 10上按名称进行ping
- 加载共享库libopenblas.so.3时出错:没有这样的文件或目录
- Docker在Ubuntu 14.04.4 LTS上使用apt-get从v1.11升级到v1.12