Tech Note · 2023-02-06 0

选择将网站程序容器化的原因

Dockerfile 和 Docker Compose File:

Dockerfile:

Dockerfile是一个按一定规则编写的包含多行命令的文件,使用Dockerfile可以快速的构建一个定制的镜像。
传统的方式构建一个工作镜像,我们可能需要使用一个基准镜像、在镜像内安装包、在镜像内编写配置文件、在镜像内编写代码等操作。使用这种方式构建镜像没什么问题,可是试想一下,当你下次需要构建一个相似的镜像,是不是还得重复之前的步骤,当你想分享镜像的时候也需要整个的发送。
但如果使用Dockerfile,它能将每一步改变内容的命令都做commit操作,生成的镜像便于查看history层;使用Dockerfile更加透明,知道具体做了哪些操作;更改更加容器,只需在Dockerfile中更改就可以重新生成镜像,不需要重头来一次;分享更加方便,可以只分享Dockerfile文件,服务器便可以生成一模一样的镜像。这就是为什么选择使用Dockerfile来定制镜像。

Docker Compose File:

按照docker官方的建议,每一个容器只启动一个进程,这样便于管理和解耦。而在生产部署的时候,我们的一个应用不太可能只有一个进程,除了代码应用的主进程外,你可能还需要开启reids、mysql、nginx等。也就是说不会只靠一个镜像便能部署完成,所以我们每次部署应用需要同时用多个镜像启动多个容器,操作端口映射、数据卷,完成容器间的通信。如果涉及到分布式和多台服务器,那岂不是每个服务器都得这样操作一次?因此,docker提供了Docker Compose File,可以使用docker-compose.yaml文件,按照特定的语法语句编写指令,管理多个镜像的部署和端口等操作,实现真证的快速部署。在不同服务器上部署时,只需要一个docker-compose.yaml文件,便能完成应用的部署操作。