docker(十二)docker-compose(一)docker-compose安装与基本介绍

192 阅读3分钟

这里我们继续来学习docker的下一个知识点,docker的开源矿建docker-compose。

 

一:什么是docker-compose

docker-compose项目是docker官方的开源项目, 负责实现对docker容器集群的快速编排。

简单讲就是:一个使用Docker容器的微服务项目,通常由多个容器应用组成。那么部署时如何快速启动各个微服务呢,一个个手动启动?假如有上百个微服务呢,显然不现实,那么使用Docker Compose编排工具便可快速启动容器。

 

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

 

二:安装docker-compose

1:windows系统安装。

如果你安装了windows桌面版的docker,那么docker-compose就已经默认安装完成了

 

2:linux安装

首先放一下docker的文档:docs.docker.com/compose/ins…

下面我简单记录一下docker-compose安装步骤

(1):更新yum仓库

yum update

 

(2):安装docker-compose

yum install docker-compose-plugin

 

(3):通过检查版本来验证 Docker Compose 是否正确安装。

docker compose version

输出:

Docker Compose version v2.27.0

证明安装成功!

 

docker官方还为我们提供了手动安装docker-compose的选项,官方不推荐,我这里也就不做演示了。有兴趣的同学可以参照一下官方文档。

 

Docker-compose是基于python开发的,如果你对python很熟悉,也是可以使用pip进行安装的,我这里就不做演示了,我不太喜欢python。

 

三:yml文件结构和版本关系

1:文件结构:

version:"3.8" # 这个版本是docker-compose的版本,不是随便写的(高版本已废弃)
 
services:#容器
  servicename:#服务名字,这个名字也是内部bridge网络可以使用的DNS name
image:#镜像的名字
container_name: 容器名字(不推荐使用)
    command:#可选,如果设置,则会覆盖默认镜像里的CMD命令
    environment:#可选,相当于docker run里的--env
    volumes:#可选,相当于docker run.里的-V
    networks:#可选,相当于docker run.里的--network
    ports:#可选,相当于docker run里的-p
  servicename2:
 
volumes:#可选,相当于docker volume create
 
networks:#可选,相当于docker network create

 

2:自已编写一个docker-compose.yml文件

Docker-compose版本和docker的版本是相互对应的,我在官网中没有找到对应的版本对照。我这里放一份在百度中找到的。 (高版本的docker已经废弃了这个玩意,如果你还在使用低版本的docker,需要了解一下)

Compose file formatDocker Engine release
3.819.03.0+
3.718.06.0+
3.618.02.0+
3.5  17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+ 
3.0 1.13.0+
2.4 17.12.0+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+

 

使用命令查看docker版本

Docker –version

输出:

Docker version 26.1.3, build b72abbb

 

Docker-compose.yml,代码如下:

services:
  web:
    image: nginx:latest
    ports:
      - "8087:80"
  my-wordpress:
    image: wordpress:latest
    ports:
      - "8081:80"

 

四:运行docker-compose.yml文件

将上方创建的docker-compose.yml文件上传至服务器/usr/local/docker目录

在/usr/local/docker目录下运行

docker compose up

第一次构建时间可能比较长。

 

常用选项

·  -d 或 --detach:在后台运行容器(分离模式)。

·  --build:在启动容器之前重新构建镜像。

·  --force-recreate:强制重新创建容器,即使配置没有变化。

·  --remove-orphans:移除不在 docker-compose.yml 文件中的孤立容器。

 

使用命令查看当前正在运行的容器:

docker ps

1.jpg

 

五:docker compose命令

我们在终端可以运行docker compose命令来查看都有什么命令:

2.jpg

 

我们停止上方创建的两个容器:

在包含 docker-compose.yml 文件的目录中运行以下命令,

docker compose stop  # 停止所有容器
docker compose stop <service_name>   # 停止名字为xxxx的容器

 

使用docker compose ps来查看当前运行的容器

3.jpg

Stop命令中需要中的到的service name就是我上图中红框标注的

停止命令:

docker compose stop my-wordpress

 

以上大概就是Docker compose的基本内容。

 

有好的建议,请在下方输入你的评论。