Docker Compose来轻松高效管理容器,定义运行多个容器。

一、重要概念

  • Docker Compose 将所管理的容器分为三层,分别是工程(project)、服务(service)、容器(container)
  • Docker Compose 运行目录下的所有文件(docker-compose.yml)组成一个工程,一个工程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖,一个服务可包括多个容器实例

二、快速入门

  1. #1、打包项目,获得 jar 包 docker-demo-0.0.1-SNAPSHOT.jar
  2. mvn clean package
  3. #2、在 jar 包所在路径创建 Dockerfile 文件,添加以下内容
  4. FROM java:8
  5. VOLUME /tmp
  6. ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
  7. RUN bash -c 'touch /app.jar'
  8. EXPOSE 9000
  9. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
  10. #3、在 jar 包所在路径创建文件 docker-compose.yml,添加以下内容
  11. version: '2' # 表示该 Docker-Compose 文件使用的是 Version 2 file
  12. services:
  13. docker-demo: # 指定服务名称
  14. build: . # 指定 Dockerfile 所在路径
  15. ports: # 指定端口映射
  16. - "9000:8761"
  17. #4、在 docker-compose.yml 所在路径下执行该命令 Compose 就会自动构建镜像并使用镜像启动容器
  18. docker-compose up
  19. docker-compose up -d // 后台启动并运行容器

三、docker-compose.yaml规则

  1. #大概分为三层
  2. #第一层,版本号,对于docker的版本
  3. version: ''
  4. #第二层,服务
  5. services:
  6. 服务1: web
  7. #服务的配置
  8. images
  9. build
  10. network
  11. ...
  12. 服务2: redis
  13. ...
  14. 服务3: es
  15. ...
  16. #第三层,其他的一些配置,如:网络/卷、全局规则等
  17. volumes:
  18. networks:
  19. configs: