这里写目录标题
Docker重启后,保存数据的操作
- https://docs.docker.com/get-started/05_persisting_data/
每次构建都需要重新部署需要更多的时间,通过绑定操作可以解决
- https://docs.docker.com/get-started/06_bind_mounts/
项目得到了生产开发,数据库需要从SQLite切换成MySQL操作
- https://docs.docker.com/get-started/07_multi_container/
使用 Docker Compose,您可以更轻松地共享您的应用程序堆栈
此时,您有一个应用程序现在将其数据存储在在单独容器中运行的外部数据库中。您了解了一些有关容器网络和使用 DNS 的服务发现的知识。但是,很有可能您开始对启动此应用程序所需要做的一切感到有点不知所措。您必须创建网络、启动容器、指定所有环境变量、公开端口等等!这需要记住很多,而且肯定会让事情更难传递给其他人。
- https://docs.docker.com/get-started/08_using_compose/
了解一些关于映像构建的最佳实践,因为您一直在使用的 Dockerfile 存在一个大问题
- https://docs.docker.com/get-started/09_image_best/
通过稍微了解镜像的结构,您可以更快地构建镜像并减少更改。扫描镜像让您确信您正在运行和分发的容器是安全的。多阶段构建还可以通过将构建时依赖项与运行时依赖项分开来帮助您减小整体镜像大小并提高最终容器的安全性。
what next?
- 容器编排
在生产中运行容器很困难。您不想登录到一台机器并简单地运行 docker run 或 docker-compose up 。为什么不?好吧,如果容器死了怎么办?你如何在多台机器上扩展?容器编排解决了这个问题。 Kubernetes、Swarm、Nomad 和 ECS 等工具都有助于解决这个问题,只是方式略有不同。
一般的想法是你有接收预期状态的“经理”。这种状态可能是“我想运行我的 Web 应用程序的两个实例并公开端口 80”。然后管理人员查看集群中的所有机器并将工作委托给“工作”节点。管理人员观察变化(例如容器退出),然后努力使实际状态反映预期状态。