Docker Compose
从上一节课我们了解到可以使用一个Dockerfile模板文件来快速构建一个自己的镜像并运行为应用容器。但是在平时工作的时候,我们会碰到多个容器要互相配合来使用的情况,比如数据库加上咱们Web应用等等。这种情况
下,每次都要一个一个启动容器设置命令变得麻烦起来,所以Docker Compose诞生了
Compose的作用是“定义和运行多个Docker容器的应用”。使用Compose,你可以在一个配置文件(yaml格式)中配置你应用的服务,然后使用一个命令,即可创建并启动配置中引用的所有服务。
Compose中两个重要概念:
-服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
-项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml文件中定义。
安装:
Docker Compose官方文档链接:https://docs.docker.com/compose
1.安装Python-pip yum install -y epel-release yum install -y python-pip
2.安装docker-compose pip install docker-compose
3.验证是否安装 docker-compose version
4.卸载 pip uninstall docker-compose
# docker compose安装步骤(另一种安装方式) sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version
使用docker-compose一次性来编排三个微服务:
eureka服务(eureka-server-2.0.2.RELEASE.jar)、user服务(user2.0.2.RELEASE.jar)、power服务(power-2.0.2.RELEASE.jar)
1.创建一个工作目录和docker-compose模板文件 2.工作目录下创建三个文件夹eureka、user、power,并分别构建好三个服务的镜像文件
以eureka的Dockerfile为例: # 基础镜像 FROM java:8 # 作者 MAINTAINER huaan # 把可执行jar包复制到基础镜像的根目录下 ADD eureka-server-2.0.2.RELEASE.jar /eureka-server-2.0.2.RELEASE.jar # 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效 EXPOSE 8080 # 在镜像运行为容器后执行的命令 ENTRYPOINT ["java","-jar","/eureka-server-2.0.2.RELEASE.jar"]
目录文件结构: compose docker-compose.yml eureka Dockerfile eureka-server-2.0.2.RELEASE.jar user Dockerfile user-2.0.2.RELEASE.jar power Dockerfile power-2.0.2.RELEASE.jar
3.编写docker-compose模板文件: version: '3.3' services: eureka: image: eureka:v1 ports: - 8080:8080 user: image: user:v1 ports: - 8081:8081 power: image: power:v1 ports: - 8082:8082
4.启动微服务,可以加上参数-d后台启动 docker-compose up -d

浙公网安备 33010602011771号