docker-compose简介


docker-compose.yml用于描述docker容器之间的依赖关系

可以一键对多个服务进行启停操作

HelloWorld

编写docker-compose

  • docker-compose.yml

# 当前docker-compose版本

version: '3'

# 定义微服务
services:
  server1:
    container_name: server1
    # 镜像名
    image: server1:latest
    # 镜像启动过程中需要的命令
    command:
      - "--msg=123456"
    # 设置server1所依赖的镜像
    links:
      - server2:host2
    ports:
      - 8080:8081


  server2:
    container_name: server2
    image: server2:latest
    # 设置server2所依赖的镜像
    links:
      - server3:host3

  server3:
    container_name: server3
    image: server3:latest

启动

  • 执行

docker-compose up -d
ok,一切正常,只要镜像生成了,我们就可以使用docker-compose一键启动所有的容器

停止

docker-compose down

pig项目示例

# 启动微服务所需的最少依赖

version: '3'
services:
  #  数据库
  mysql:
    container_name: pig-compose-mysql
    image: registry.cn-hangzhou.aliyuncs.com/sherry/mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    command: [
      'mysqld',
      '--innodb-buffer-pool-size=20M',
      '--character-set-server=utf8',
      '--collation-server=utf8_general_ci',
      '--default-time-zone=+8:00',
      '--lower-case-table-names=1'
    ]
    volumes:
    - /Users/zhangliuning/Volumes/mysql/data:/var/lib/mysql
    restart: always
    ports:
    - 3306:3306
  #   Redis
  redis:
    container_name: pig-compose-redis
    image: registry.cn-hangzhou.aliyuncs.com/sherry/redis:3.2.9
    ports:
    - 6379:6379
  #      RabbitMQ
  rabbitmq:
    container_name: pig-compose-rabbitmq
    image: registry.cn-hangzhou.aliyuncs.com/sherry/rabbitmq:3.7-management
    hostname: rabbitmqhost
    environment:
      RABBITMQ_DEFAULT_USER: pig
      RABBITMQ_DEFAULT_PASS: pig
    volumes:
    - /Users/zhangliuning/Volumes/rabbitmq:/var/rabbitmq/lib
    ports:
    - 15672:15672
    - 5672:5672

  pig-eureka:
    build:
      context: ./
      dockerfile: Dockerfile-eureka
    container_name: pig-eureka
    image: sherry/pig-eureka:latest
    restart: always
    ports:
    - 1025:1025

  pig-auth:
    build:
      context: ./
      dockerfile: Dockerfile-auth
    container_name: pig-auth
    image: sherry/pig-auth:latest
    links:
    - pig-eureka:eureka
    - redis:redishost
    - rabbitmq:mqhost
    - mysql:mysqlhost
    restart: always
    ports:
    - 3000:3000

  pig-upms-service:
    build:
      context: ./
      dockerfile: Dockerfile-upms
    container_name: pig-upms-service
    image: sherry/pig-upms-service:latest
    links:
    - redis:redishost
    - rabbitmq:mqhost
    - pig-eureka:eureka
    - mysql:mysqlhost
    restart: always

  pig-gateway:
    build:
      context: ./
      dockerfile: Dockerfile-gateway
    container_name: pig-gateway
    image: sherry/pig-gateway:latest
    links:
    - redis:redishost
    - rabbitmq:mqhost
    - pig-eureka:eureka
    - pig-auth:authhost
    restart: always
    ports:
    - 9999:9999

参数传递

version: '3'

services:
  reg-center1:
    build:
      context: ./
      dockerfile: Dockerfile
    container_name: reg-center1
    environment:
    - active=prod
    - hostaddr=10.0.0.6
    - server1=10.0.0.6
    - server2=10.0.0.6
    - server1port=10002
    - server2port=10003
    - serverport=10001
    - ydeurekausername=yiding
    - ydeurekapassword=yiding
    image: sherry/reg-center:latest
    restart: always
    ports:
    - 10001:10001

FROM registry.cn-hangzhou.aliyuncs.com/sherry/java:1.8.0_111
VOLUME /tmp
ADD reg-center.jar app.jar
RUN sh -c 'touch /app.jar'
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java -Xms256m -Xmx256m $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar --spring.profiles.active=$active  --host-addr=$hostaddr --server1=$server1 --server2=$server2 --server1.port=$server1port --server2.port=$server2port --server.port=$serverport --yd.eureka.username=$ydeurekausername --yd.eureka.password=$ydeurekapassword"]

示例项目

在Gitee上编写了一个项目,实现了以下功能

1、Dockerfile

2、docker-compose.yml

3、docker-compose传递参数给Dockerfile

4、Feign、Eureka跨主机调用

https://gitee.com/dingyi_zhidianfan/yd/tree/V0.0.1
reg-center是注册中心

yiding内是一个生产者和消费者项目,用于演示Feign的服务调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值