欢迎光临散文网 会员登陆 & 注册

Docker基础——Docker Compose

2023-08-21 16:27 作者:没用软件开发日记  | 我要投稿

    Docker Compose是一个帮助您定义和共享多容器应用程序的工具。Docker Compose通过读取项目根目录下的compose.yaml文件执行yaml里预制的命令构建整个基于Docker的项目。

    上述代码是一份compose.yaml文件的主要内容,首先以services开头定义服务:

  • app是第一个服务的名称,同时这个名字会作为该服务的网络别名使用。

  • image指定了app服务的基础镜像

  • command指定了容器准备完毕后执行的指令

  • ports指定了主机和服务之间的端口映射数组

  • working_dir定义工作目录,在Docker compose中可以根据当前文件目录会用相对路径

  • volumes定义了一个数组,数组的每一项是一个卷挂载配置

  • environment标明了所有的环境变量

  • mysql是第二个服务的名称,app的环境变量MYSQL_HOST通过将值指定为mysql与该服务链接

  • 当运行docker运行容器时,docker会自动创建命名卷。但是,在使用Compose运行时不会发生这种情况。我们需要在与services平级的顶级volumes中定义卷,然后在服务的volumes配置中指定挂载点。最简单的方式是只需提供卷名称,就可以使用默认选项。

    下面我们可以基于以上的配置文件启动应用,在启动应用之前要确保没有同样的容器正在运行,Docker compose不会自动去替换现有容器。

    我们可以使用上述代码在compose.yaml所在的目录运行应用,-d标记和之前使用的 -d 含义相同都是后台运行。

    在运行过程中我们会注意到Docker compose执行的第一个任务是为这次创建的应用栈创建网络,所以我们在之前的compose.yml中不需要主动配置网络,单次创建的应用栈中的服务默认通过此网络互通。

Docker基础——Docker Compose的评论 (共 条)

分享到微博请遵守国家法律