Docker Compose

Docker 是一个开放源代码的应用程序容器引擎,可以帮助用户轻松地打包、分发和运行任何应用程序,并且具有开发效率高、部署便捷等优点。
Docker Compose 是 Docker 的一个子项目,可以帮助用户定义和运行多容器 Docker 应用程序。使用 Docker Compose 可以更轻松地管理多个容器的应用程序,例如在本地或云平台上构建和部署微服务应用程序。

参考链接
https://zhuanlan.zhihu.com/p/620097083

1.安装 Docker Compose

在使用 Docker Compose 之前,您需要先安装 Docker 引擎。
然后,您可以通过以下步骤来安装 Docker Compose:

打开官方文档 Docker Compose Releases (https://github.com/docker/compose/releases
找到适合您服务器系统的版本进行下载。
在这里插入图片描述
服务器一般都是时linux系统的
下载后传到虚机一定要 改名字成docker-compose!!!

上传docker-compose到 /usr/local/bin/路径
赋予权限:chmod +x /usr/local/bin/docker-compose
验证是否成功安装docker-compose:docker-compose -v

2.编写 Compose 文件

Docker Compose 使用 YAML 文件来定义应用程序的组件和它们之间的联系。下面是一个使用 Docker Compose 启动 web 应用程序的样例文件:

version: '3'  
services:  

  web:  
    image: nginx  
    ports:  
      - "80:80"  
    volumes:  # 目录挂载,宿主机在前,容器在后
      - ./html:/usr/share/nginx/html  
    environment:  
      - NGINX_HOST=localhost  
      - 
  db:  
    image: mysql  
    environment:  
      - MYSQL_ROOT_PASSWORD=password  
    volumes:  # 目录挂载,宿主机在前,容器在后
      - ./mysql:/var/lib/mysql

这个示例定义了两个服务:web和db。

在web服务中,使用了nginx镜像,将容器的80端口映射到主机的80端口,并将当前目录下的html文件夹挂载到容器的/usr/share/nginx/html目录下。同时,设置了NGINX_HOST环境变量为localhost。

在db服务中,使用了mysql镜像,设置了MYSQL_ROOT_PASSWORD环境变量为password,并将当前目录下的mysql文件夹挂载到容器的/var/lib/mysql目录下。

这样,通过Docker Compose可以轻松地启动和管理这两个服务的容器。

以下是 Compose 文件的一些常见选项:

常用配置描述
version指定 Compose 文件格式的版本。
services定义要启动的服务列表及每个服务的配置。
image指定要使用的 镜像名:版本号
使用docker images 查出来 REPOSITORY和TAG ,中间用:隔开
build指定 Dockerfile 的路径或 URL,用于构建自定义 Docker 镜像。
ports指定端口映射规则,将主机的端口映射到容器中的端口。
volumes指定挂载的卷目录,将主机的目录和容器中的目录进行映射。

除了上述选项外,还可以使用其他选项来定义网格、环境变量、命令、健康检查等。有关更详细的信息,请参阅 Docker Compose 的官方文档。

3.启动、停止、恢复服务

1.要启动 Compose 文件中定义的所有服务,在包含 Compose 文件的目录下执行以下命令:
docker-compose up

2.如果要在后台运行服务,请使用以下命令:
docker-compose up -d

3.要停止所有服务,请使用以下命令:
docker-compose stop

4.要重启所有服务,请使用以下命令:
docker-compose restart

5.要恢复已停止的服务,请使用以下命令:
docker-compose start

以 yml文件进行启动(一般来说常用的为以下这个)

1.按照启动文件生成、启动对应容器:
docker-compose -f a.yml up -d
备注:如果后续修改了启动文件,再执行此指令,则按照启动文件的修改重新创建容器。
如果文件没修改执行此指令,则容器不会做任何修改,也不会重启。
2.按照启动文件重启容器:
docker-compose -f a.yml restart
3。按照启动文件删除容器:
docker-compose -f a.yml down

4.构建和升级服务

1.要构建 Compose 文件中定义的服务,请使用以下命令:
docker-compose build

2.如果您只需要构建某个服务,请使用以下命令:
docker-compose build <service_name>

3.要重新构建服务并强制重新生成镜像,请使用以下命令:
docker-compose up --build

4.要升级服务,请修改 Compose 文件中的版本或其他配置,然后使用以下命令重新构建和启动服务:
docker-compose up --force-recreate --build
请注意,这将删除并重新创建所有容器。