当前位置:   article > 正文

Docker Compose

Docker Compose
1、概念介绍

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

Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。

安装部署
  1. # 安装Compose
  2. curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  3. # 赋予docker-compose可执行权限
  4. chmod +x /usr/local/bin/docker-compose
  5. # 查看docker-compse版本
  6. docker-compose -version
使用流程

编写 Dockerfile 定义各个微服务应用并构建出对应的镜像文件。

使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。

最后,执行docker-compose up命令来启动并运行整个应用程序,完成一键部署上线。

常用命令

2、编排服务
创建微服务镜像

使用Dockerfile文件生成微服务镜像

  1. FROM openjdk:8-oracle
  2. MAINTAINER lemon
  3. # 在主机 /var/lib/docker目录下创建一个临时文件,并链接到容器的 /tmp
  4. VOLUME /tmp
  5. # 将jar包添加到容器中,并命名为 springboot_docker.jar
  6. ADD docker_boot-1.0-SNAPSHOT.jar /springboot_docker.jar
  7. # 运行jar包
  8. RUN bash -c 'touch /springboot_docker.jar'
  9. ENTRYPOINT ["java", "-jar", "/springboot_docker.jar"]
  10. # SpringBoot项目配置的端口号为6001,需要将6001暴露出去
  11. EXPOSE 6001
docker-compose.yml 文件
  1. # docker-compose文件版本号
  2. version: "3"
  3. # 配置各个容器服务
  4. services:
  5. microService:
  6. image: springboot_docker:1.0
  7. container_name: ms01 # 容器名称,如果不指定,会生成一个服务名加上前缀的容器名
  8. ports:
  9. - "6001:6001"
  10. volumes:
  11. - /app/microService:/data
  12. networks:
  13. - springboot_network
  14. depends_on: # 配置该容器服务所依赖的容器服务
  15. - redis
  16. - mysql
  17. redis:
  18. image: redis:6.0.8
  19. ports:
  20. - "6379:6379"
  21. volumes:
  22. - /app/redis/redis.conf:/etc/redis/redis.conf
  23. - /app/redis/data:/data
  24. networks:
  25. - springboot_network
  26. command: redis-server /etc/redis/redis.conf
  27. mysql:
  28. image: mysql:5.7
  29. environment:
  30. MYSQL_ROOT_PASSWORD: '123456'
  31. MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
  32. MYSQL_DATABASE: 'db_springboot'
  33. MYSQL_USER: 'springboot'
  34. MYSQL_PASSWORD: 'springboot'
  35. ports:
  36. - "3306:3306"
  37. volumes:
  38. - /app/mysql/db:/var/lib/mysql
  39. - /app/mysql/conf/my.cnf:/etc/my.cnf
  40. - /app/mysql/init:/docker-entrypoint-initdb.d
  41. networks:
  42. - springboot_network
  43. command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问
  44. networks:
  45. # 创建 springboot_network 网桥网络
  46. springboot_network:
  1. # 检查docker-compose.yml 文件语法
  2. docker-compose config -q
  3. # 启动所有的容器实例
  4. docker-compose up -d
  5. # 关闭所有容器实例
  6. docker-compose stop
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/73555
推荐阅读
相关标签
  

闽ICP备14008679号