docker-compose学习

77 阅读1分钟

1. 相关概念

负责实现对 Docker 容器集群的快速编排

  • 服务 (service):一个应用容器,实际上可以运行多个相同镜像的实例。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元。一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理。

本机docker-compose演示地址

/opt/ems

docker hub地址

hub.docker.com/

安装命令

$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

2. 命令

测试安装是否成功

docker-compose --version

初步使用

docker-compose up  //前台启动一组服务
docker-compose up -d //后台启动一组服务
version: "3.0"
services:
  tomcat:
    container_name: tomcat
    image: tomcat:8.0
    ports:
      - "8080:8080"
  tomcat01:
    container_name: tomcat01
    image: tomcat:8.0
    ports:
      - "8081:8080"

  mysql:
    image: mysql:5.6
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
    volumes:         # 代表当前宿主机和容器指定数据卷,docker-compose使用绝对路径的时候必须提前创建才能使用
      - mysqldata:/var/lib/mysql


volumes:
  mysqldata: # 声明别名数据卷

查看指定容器卷的位置

docker volume ls
docker inspect volume_name

如何查看应用在容器内的安装位置

docker hub中搜索

编排第一个自己的服务

FROM openjdk:8-jre
EXPOSE 8081
ENV APP_PATH=/apps
WORKDIR $APP_PATH
COPY test-springboot-0.0.1-SNAPSHOT.jar $APP_PATH
VOLUME $APP_PATH
ENTRYPOINT ["java","-jar"]
CMD ["test-springboot-0.0.1-SNAPSHOT.jar"]
version: "3.0"
services:
  tomcat:
    container_name: tomcat
    image: tomcat:8.0
    ports:
      - "8080:8080"

  apps:
    #build: ./   # 指定dockerFile的上下文目录,一切都是默认值
    build:
      context: ./  # 用来指定dockerfile的上下文目录
      dockerfile: Dockerfile # 指定dockerfile文件名称
    ports:
      - "8081:8081"