赞
踩
Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。
- # 安装Compose
- curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
-
- # 赋予docker-compose可执行权限
- chmod +x /usr/local/bin/docker-compose
-
- # 查看docker-compse版本
- docker-compose -version
① 编写 Dockerfile 定义各个微服务应用并构建出对应的镜像文件。
② 使用 docker-compose.yml 定义一个完整业务单元,安排好整体应用中的各个容器服务。
③ 最后,执行docker-compose up命令来启动并运行整个应用程序,完成一键部署上线。
使用Dockerfile文件生成微服务镜像
- FROM openjdk:8-oracle
- MAINTAINER lemon
-
- # 在主机 /var/lib/docker目录下创建一个临时文件,并链接到容器的 /tmp
- VOLUME /tmp
-
- # 将jar包添加到容器中,并命名为 springboot_docker.jar
- ADD docker_boot-1.0-SNAPSHOT.jar /springboot_docker.jar
- # 运行jar包
- RUN bash -c 'touch /springboot_docker.jar'
- ENTRYPOINT ["java", "-jar", "/springboot_docker.jar"]
-
- # SpringBoot项目配置的端口号为6001,需要将6001暴露出去
- EXPOSE 6001
- # docker-compose文件版本号
- version: "3"
-
- # 配置各个容器服务
- services:
- microService:
- image: springboot_docker:1.0
- container_name: ms01 # 容器名称,如果不指定,会生成一个服务名加上前缀的容器名
- ports:
- - "6001:6001"
- volumes:
- - /app/microService:/data
- networks:
- - springboot_network
- depends_on: # 配置该容器服务所依赖的容器服务
- - redis
- - mysql
-
- redis:
- image: redis:6.0.8
- ports:
- - "6379:6379"
- volumes:
- - /app/redis/redis.conf:/etc/redis/redis.conf
- - /app/redis/data:/data
- networks:
- - springboot_network
- command: redis-server /etc/redis/redis.conf
-
- mysql:
- image: mysql:5.7
- environment:
- MYSQL_ROOT_PASSWORD: '123456'
- MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
- MYSQL_DATABASE: 'db_springboot'
- MYSQL_USER: 'springboot'
- MYSQL_PASSWORD: 'springboot'
- ports:
- - "3306:3306"
- volumes:
- - /app/mysql/db:/var/lib/mysql
- - /app/mysql/conf/my.cnf:/etc/my.cnf
- - /app/mysql/init:/docker-entrypoint-initdb.d
- networks:
- - springboot_network
- command: --default-authentication-plugin=mysql_native_password # 解决外部无法访问
-
- networks:
- # 创建 springboot_network 网桥网络
- springboot_network:
- # 检查docker-compose.yml 文件语法
- docker-compose config -q
-
- # 启动所有的容器实例
- docker-compose up -d
-
- # 关闭所有容器实例
- docker-compose stop
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。