docker系列教程之docker compose使用

一、Compose 简介

Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

Compose 使用的三个步骤:

  1. 使用 Dockerfile 定义应用程序的环境。
  2. 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  3. 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

如果多个容器在同一个宿主机中,通过compose来部署应用非常方便,通过能自动解决容器互联问题。

二、compose安装
安装环境linux中
我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。

运行以下命令以下载 Docker Compose 的当前稳定版本:

curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

要安装其他版本的 Compose,请替换 1.27.3。

将可执行权限应用于二进制文件:

chmod +x /usr/local/bin/docker-compose

创建软链:

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:

docker-compose --version

在这里插入图片描述

三、创建多个容器
创建一个app目录,目录中有一个docker-comose.yml文件、demo和test目录。
在这里插入图片描述
docker-comose.yml文件

version: '3'
networks:
    app-network:
services:

 demo: 
   networks:
    - app-network
   build: ./demo
   container_name: demo
   ports:
     - "8099:8099"
 test: 
   networks:
    - app-network
   build: ./test
   container_name: test
   ports:
     - "8085:8085"

image
标明镜像名称或镜像 ID,这个image ID可以是本地也可以是远程的,如果本地不存在,Compose会尝试去pull下来。

build
服务除了可以基于指定的镜像,还可以基于一份 Dockerfile,在使用 up 启动之时执行构建任务,这个构建标签就是 build,它可以指定 Dockerfile 所在文件夹的路径。Compose 将会利用它自动构建这个镜像,然后使用这个镜像启动服务容器。

因此image和build不能共存,如果同时存在会以image参数为主,build参数就会失效。我们这次教程都是通过build文件Dockerfile文件来创建容器

具体参数含义请参考: docker-compose

1.创建第一个容器
在app目录下创建一个demo目录,目录中存放我们提前放好的demo-0.0.1-SNAPSHOT.jar

在这里插入图片描述
创建Dockerfile文件

FROM java:8
VOLUME /tmp
COPY ./demo-0.0.1-SNAPSHOT.jar /app/
EXPOSE 8099
ENTRYPOINT [ "java", "-jar", "/app/demo-0.0.1-SNAPSHOT.jar" ]


1.创建第二个容器
在app目录下创建一个test目录,目录中存放我们提前放好的test-0.0.1-SNAPSHOT.jar
在这里插入图片描述
创建Dockerfile文件

FROM java:8
VOLUME /tmp
COPY ./test-0.0.1-SNAPSHOT.jar /app/
EXPOSE 8085
ENTRYPOINT [ "java", "-jar", "/app/test-0.0.1-SNAPSHOT.jar" ]

以上两个应用创建完成后,回到app目录执行docker-compose构建容器

docker-compose up -d

-d代表后台运行
在这里插入图片描述
查看容器是否启动成功

docker ps -a

在这里插入图片描述


版权声明:本文为qq_20161461原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。