Docker学习笔记 — Compose简介、安装与简单使用
来源:互联网 发布:淘宝联盟交流群 编辑:程序博客网 时间:2024/05/20 12:47
简介
Docker Compose是在使用Docker容器部署分布式应用时的工具,可以定义哪个容器运行哪个应用。使用Compose,你只需定义一个多容器应用的yml文件,然后使用一条命令即可部署运行所有容器。
安装Compose
下载安装最新版的docker-compose
curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
使用docker-compose –version验证安装是否成功。
使用方法
我们以官网上的简单示例来看看docker compose的使用方法。
准备
首先创建项目文件夹
mkdir composetestcd composetest
创建app.py,使用flash web服务框架,数据库使用redis。
from flask import Flaskfrom redis import Redisimport osapp = Flask(__name__)redis = Redis(host='redis', port=6379)@app.route('/')def hello(): redis.incr('hits') return 'Hello World! I have been seen %s times.' % redis.get('hits')if __name__ == "__main__": app.run(host="0.0.0.0", debug=True)
创建requirements.txt文件,定义项目依赖的python包。
flaskredis
创建镜像
使用dockerfile创建镜像,dockerfile文件如下:
FROM python:2.7ADD . /codeWORKDIR /codeRUN pip install -r requirements.txt
在python:2.7基础镜像上安装依赖的python软件包,并将代码挂载到镜像里。
定义服务
使用docker-compose.yml文件定义提供的服务。
web: build: . command: python app.py ports: - "5000:5000" volumes: - .:/code links: - redisredis: image: redis
定义了两个服务:
- web服务:该容器从当前文件夹的dockerfile创建,并运行python app.py
命令;将web容器内部的5000端口映射到host的5000端口;挂载当前文件夹到容器内部的/code文件夹,并将web容器与redis容器连接;
- redis服务:该容器直接由官方的redis镜像创建。
启动
使用命令docker-compose up
启动,首先将启动redis容器,然后启动web容器,再将两者连接起来。
$ docker-compose upPulling image redis...Building web...Starting composetest_redis_1...Starting composetest_web_1...redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3web_1 | * Running on http://0.0.0.0:5000/
使用docker-compose up -d
在后台启动服务,使用docker-compose ps
命令查看启动的服务。
$ docker-compose up -dStarting composetest_redis_1...Starting composetest_web_1...$ docker-compose ps Name Command State Ports-------------------------------------------------------------------composetest_redis_1 /usr/local/bin/run Upcomposetest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp`
使用docker-compose stop
停止服务。
YML文件格式
参考YAML 模板文件
参考资料:
Docker官方文档
- Docker学习笔记 — Compose简介、安装与简单使用
- Docker-Compose简介安装使用
- 【Docker】Docker-Compose安装与使用
- docker学习笔记之Docker Compose与docker swarm
- Docker & Docker-Compose安装、使用
- Docker学习笔记3:CentOS7下安装Docker-Compose
- docker-compose学习笔记1
- docker-compose 学习笔记2
- docker-compose安装和使用
- Docker Compose笔记 02 安装笔记
- docker-compose version 2学习笔记
- Docker Compose简介
- Docker-compose的安装与卸载
- 使用docker-compose快速安装redmine
- Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器
- docker/compose项目笔记
- gitlab docker-compose笔记
- 1.4、安装Docker Compose
- C++中extern “C”含义深层探索
- UINavigationbar/UINavigationItem/UITabBar/UITabButton/UITabBarItem粑粑粑粑~
- NYOJ 271 The 3n + 1 problem
- Learning WPF / March 15,2015 / Sunday
- 3.2 视图和模型变换
- Docker学习笔记 — Compose简介、安装与简单使用
- Qt 中Warning: Z-order assignment: " is not a valid widget
- C++编程学习52个经典网站 强力推荐
- zoj 2109 FatMouse' Trade 贪心
- 集群中几种session同步解决方案的比较
- # 工程经济学第4
- (2.2.3)Java之美[从菜鸟到高手演变]之设计模式二:结构型模式
- wsmhzy
- 安卓的各种动画资源