1. 相关概念
负责实现对 Docker 容器集群的快速编排
- 服务 (
service):一个应用容器,实际上可以运行多个相同镜像的实例。 - 项目 (
project):由一组关联的应用容器组成的一个完整业务单元。一个项目可以由多个服务(容器)关联而成,Compose面向项目进行管理。
本机docker-compose演示地址
/opt/ems
docker hub地址
安装命令
$ 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"