码迷,mamicode.com
首页 > 其他好文 > 详细

docker-compose 基础和介绍

时间:2018-10-24 20:04:19      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:环境隔离   get   定义   version   3.4   unp   image   特性   重启   

介绍: docker compose 是 docker 官方推出的一款单机容器编排工具, 和 docker swarm, docker machine 并称为 docker 容器编排三剑客, 虽然其被 k8s 吊打, 但是由于其简单易学在中小规模的集群中还是占有相当的一部分地位的 使用Compose的步骤: 1、定义您的应用程序环境,Dockerfile以便可以在任何地方进行复制 2、定义构成应用程序的服务,docker-compose.yml 以便它们可以在隔离环境中一起运行 3、运行 docker-compose up 和 Compose starts 运行整个应用程序 compose 的特性: 1、单个主机上的多个环境隔离 2、创建容器时保留卷数据 3、仅重新创建已更改的容器 4、变量和在环境之间移动合成 安装: docker compose 依赖所有的工作依赖于 docker, 在安装 compose 前请确保已在本地或远程主机中安装 docker 二进制安装: curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose pip安装: pip install docker-compose 一个简单的例子: mkdir composetest && cd composetest #创建一个专用目录,用于编写和保存 compose 文件 cat app.py #编写一个 flask web 应用作为测试 import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host=‘redis‘, port=6379) #连接 redis # 定义函数 def get_hit_count(): retries = 5 while True: try: return cache.incr(‘hits‘) except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route(‘/‘) def hello(): count = get_hit_count() # 每访问一次返回的 count 加 1 return ‘Hello World! I have been seen {} times.\n‘.format(count) if __name__ == "__main__": #运行 web 应用 app.run(host="0.0.0.0", debug=True) cat Dockerfile #编写docker file 文件以便 compose 可以根据 docker file 动态构建镜像 FROM python:3.4-alpine ADD . /code WORKDIR /code RUN pip install flask redis CMD ["python", "app.py"] cat docker-compose.yml #编写 compose 文件定义容器间的关系 version: ‘3‘ services: web: build: . ports: - "5000:5000" volumes: - .:/code redis: image: "redis:alpine" docker-compose up #启动 docker compose 定义的 docker 集群 curl http://127.0.0.1:5000/ #访问 Web APP # 示例来源 # https://docs.docker.com/compose/gettingstarted/#step-5-edit-the-compose-file-to-add-a-bind-mount docker-compose 命令: 介绍: 1、docker-compose 命令的执行都必须指定或者在当前目录下存在 compose 文件, 且输出的内容都是这个 compose.yml 文件定义的集群内的信息 2、每个集群中可以拥有多个 services, services 由 compose.yml 的 services 定义 选项: -f 指定 compose 文件路径(可以指定多个) 子命令: create 创建 compose 集群, 但不启动(已废弃, 使用 up --no-start 代替) down 停止或删除容器, 网络, 镜像和数据卷 exec 运行容器中的命令或者连接容器 help 查看帮助信息 images 列出 compose 集群所用的镜像 kill kill 掉 compose 集群 logs 获取 compose 集群日志 pause 暂停 compose 集群 ps 列出正在运行的容器 pull 拉取 compose.yml 文件中定义的所有 docker 镜像 push 上传 compose.yml 文件中定义的所有 docker 镜像 restart 重启 compose 集群 rm 删除一个停止的容器或者 compose 集群 run 和 exec 相同 scale 更改 compose 集群内指定的 services 的副本数量 start 启动 compose 集群 stop 停止 compose 集群 top 显示 compose 集群中运行的进程及其状态 unpause 恢复被暂停的 compose 集群 up 创建并启动一个 compose 集群 version 输出 compose 版本

docker-compose 基础和介绍

标签:环境隔离   get   定义   version   3.4   unp   image   特性   重启   

原文地址:http://blog.51cto.com/hongchen99/2308451

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!