Docker Compose

1. 简介

  • 单独的容器没什么意义,有意义的是容器编排!Dockerfile build run 手动操作,单个容器!

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

  • 官方文档:https://docs.docker.com/compose/install/

理解
1、Compose是Docker官方的开源项目。需要单独安装!

2、Dockerfile让程序可以在任何地方运行。Web 服务, redis, mysql,nginx....多个容器,挨个手动去启动管理太麻烦了!!

3、Compose的重要的概念

  • 服务services: 容器,应用(例如,单个的web,redis,mysql....)

  • 项目project:一组关联的容器。(例如, 博客: web, mysql)

2. 安装

# 官方下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 加速下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 授权
chmod +x /usr/local/bin/docker-compose
# 查看版本
docker-compose version

Docker Compose

3. 官方体验:python应用,计数器

官方文档地址:https://docs.docker.com/compose/gettingstarted/

1、应用:app.py

2、创建 Dockerfile 应用打包为镜像

3、创建 docker-compose.yml 定义整个服务,需要的环境、web、redis等

4、docker-compose up

5、停止 docker-compose down

4. compose配置变写规则

# docker-compose.yml 三层核心
version: "3.8"  # 1. 版本
services:       # 2. 服务
  web:          # 服务1
    build: .
    ports:
    depends_on: # 启动顺序 db->redis->web
      -db
      -redis
    environment:
      FLASK_ENV: development
  redis:         # 服务2
    image: "redis:alpine"
  db:            # 服务3
    image: mysql
# 其他配置 网络/卷/全局规则。。。
networks:
configs:

5. 自己编写微服务上线

1、注意:application.properties中 docker 容器直接使用域名访问

server.port=8080
spring.redis.host=redis

2、Dockerfile

FROM java:8

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java","-jar","/app.jar"]

3、docker-compose.yml

version: "3.8"
services:
  myapp:
    build: .
    depends_on:
      - redsi
    ports:
      - "8080:8080"
  redis:
    image: "redis:alpine"

4、docker-compose up

上一篇:Docker学习高级篇05-ARL灯塔安装


下一篇:Dokcer14_3:Docker Compose使用