简单介绍
Compose是Docker官方的容器编排工具,可以让用户通过编写简单yml模板文件,快速创建和管理基于Docker容器的应用集群
Github开源地址:https://github.com/docker/compose
使用Compose的三个基本步骤
- 在
Dockerfile
定义应用应用的运行环境,让它能够在任何地方在次运行
- 在
docker-compose.yml
定义应用的service的结构,使其能够在隔离的环境里面能够一起运行
- 最后运行运行
docker-compose up -d
启动应用的容器
一个docker-compose.yml
示例
1 2 3 4 5 6 7 8 9 10 11
| version: '2'
services: web: build: . ports: - "5000:5000" volumes: - .:/code redis: image: redis
|
命令 |
功能 |
version |
compose文件版本,最新v3 |
build |
指定Dockerfile所在文件夹的路径 |
volumes |
数据卷挂载路径设置 |
ports |
暴露端口信息,”宿主机端口:容器端口” |
restart |
指定重启策略,”no、always、on-failure、unless-stop” |
安装部署
1、首先确保docker安装完成
1 2
| $ docker -v Docker version 19.03.12, build 48a66213fe
|
2、安装docker-compose
1 2 3 4 5 6
| $ curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version docker-compose version 1.26.2, build 1110ad01
|
1 2 3 4
| $ pip install docker-compose
$ docker-compose -v docker-compose version 1.26.2, build unknown
|
提示:如有报错,多执行几次,或者升级pip在执行
卸载compose
如果是二进制安装,删除二进制文件即可
1
| $ sudo rm /usr/local/bin/docker-compose
|
如果是通过Python pip工具安装,执行如下命令删除
1
| $ sudo pip uninstall docker-compose
|
应用示例
docker-compose部署spark
docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| version: '2'
services: master: image: sequenceiq/spark:1.4.0 hostname: master ports: - "4040:4040" - "8042:8042" - "7077:7077" - "8088:8088" - "8080:8080" restart: always command: bash /usr/local/spark/sbin/start-master.sh && ping localhost > /dev/null
worker: image: sequenceiq/spark:1.4.0 depends_on: - master expose: - "8081" restart: always command: bash /usr/local/spark/sbin/start-slave.sh spark://master:7077 && ping localhost >/dev/null
|
1 2 3 4
| $ docker-compose up -d Creating network "spark_default" with the default driver Creating spark_master_1 ... done Creating spark_worker_1 ... done
|
访问http://ip:8080
