【docker基础】: 使用docker compose

docker compose

docker compose 是什么

Docker Compose 是一个用于定义和运行多个 Docker 容器的工具,它允许你使用一个 YAML 文件来配置和管理 Docker 容器。

如果你已经下载了docker图形化界面,那么你就可以直接使用了,里面内嵌了这个。

如果没有下载,你可以去Install the Compose plugin | Docker Documentation

Docker Compose 可以帮助我们快速地部署和管理多个 Docker 容器,并提供了一种简单而强大的方式来定义和管理多个容器之间的依赖关系、网络配置和数据卷等。

Docker Compose 文件可以包含一个或多个服务,每个服务都是一个Docker 容器。

可以在 Docker Compose 文件中定义容器的镜像、环境变量、端口映射、依赖关系等属性,以及容器之间的网络和数据卷等配置。当我们使用 Docker Compose 启动容器时,它会自动创建和启动定义的容器,并配置它们之间的网络和数据卷等关系。

docker compose 作用

使用 Docker Compose 可以帮助你简化容器的部署和管理过程,当需要部署一个包含多个容器的应用程序时。

你可以使用 Docker Compose 来管理这些容器之间的依赖关系和配置,使得整个应用程序的部署和管理更加容易和可靠。

另外,Docker Compose 还提供了一些实用的命令和工具,例如 docker-compose updocker-compose downdocker-compose ps 等,可以帮助我们轻松地启动、停止和管理 Docker 容器。

docker compose 使用实例

这里依旧是使用官网的例子:

  1. 下面是我们之前启动前端容器的命令

image.png

我们现在就是将它使用docker-compose.yml去配置。

  1. 配置docker-compose.yml:

image.png

  1. 现在就可以启动它了,docker compose up -d, 后台启动。

启动之后,会发现它帮我们创建了一个network,然后也自己创建了一个卷:

  • 当我们使用 docker-compose up 启动容器时,Docker Compose 会自动创建一个默认网络,并将所有服务连接到这个网络中。这个默认网络的名称由 Docker Compose 自动生成,通常是以当前目录的名称为前缀,加上一个随机字符串作为后缀。

  • 默认网络可以理解,但是创建了一个新卷,很离谱; 因为docker compose 是以名称来引用卷,里面我只是指定了volume在该配置文件中的名称,而没有指定它去哪里寻找卷,docker就为我们新建了一个卷。

    那要是我们不想要新建这个卷该怎么办,答案是指定卷的名称,类似这样:

image.png

这样docker就可以去docker主机里去寻找name为todo-mysql-data的卷。

  1. 容器正常启动。

image.png


下面介绍一些 docker compose up用法

根据docker-compose.yml文件起步应用

docker-compose up 命令用于启动 Docker Compose 中定义的服务。它会根据 docker-compose.yml 文件中的定义,启动服务并创建容器。

运行 docker-compose up 命令时,Docker Compose 会启动您在 docker-compose.yml 文件中定义的所有服务, 因此你要保证该命令执行时docker-compose.yml文件在当前目录下,或者使用-f去指定文件。

现场构建镜像

它会首先构建缺少的镜像(如果你不指定iamge的话)。

要自主构建镜像的话你需要指定构建镜像的Dockerfile文件位置,像:

services:
  web:
    build: ./webfile
    ports:
      - "8080:80"

前台启动

在启动服务时,docker-compose up 命令将会在前台运行,同时会输出服务的日志信息。可以使用ctrl + c 退出。

后台启动

docker-compose up -d, 这个命令将会让该服务在后台启动。

关闭应用

docker compose down

该命令将会查找该目录中的 docker-compose.yml 文件,并停止并删除所有在该文件中定义的服务包括network,但是卷不会被删除,要想删除卷 需要 加上 –volumes

docker compose down需要在docker-compose.yml的同级目录下运行 或者 使用 -f 指定docker-compose.yml文件的位置。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYeVBvDD' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片