Docker Compose入门

这两天在折腾docker compose,不,我错了,明明是compose在折腾我!!现在是2018年年末,而博主我却在使用古董级别的docker engine和docker compose,作为计算机行业的新手,诶,有太多知识欠缺了,但既然打算走这条路,便也只能撸起袖子加油干。废话少说,开始讲讲这两天对docker compose的了解吧!
主要内容包括:
一。基本信息 即博主使用的系统配置+docker compose 选择与安装
二。 一个简单docker compose应用实例
三。 总结与建议 ——菜鸟的心酸

一、基本信息


*-------------------------------------------------------------
系统:CentOS 7 minimal
docker 版本 docker ce 1.7.1
docker compose版本 1.5.2
-
-------------------------------------------------------------

古董级的版本了。。。由于docker engine版本古老,所以相兼容的docker compose 版本也是早期的版本。
选择和安装docker compose必须先搞清楚这三个东西:docker engine、docker compose、docker compose file(后缀.yml 或.yaml)。docker engine 不提了,在命令行里使用#docker version 即可查看当前版本。今天的主人公docker compose, 定位是“定义和运行多个Docker容器的应用”。简单的来说,你创建一个项目,这个项目里涉及到多个应用程序,每个应用程序分别放在一个容器里,你可以用docker compose对这些容器们进行统一的创建和管理。再具体点,你要实现一个web项目,除了web服务容器本身,一般还需要后端数据库服务容器以及负载均衡容器等,docker compose主要通过一个模板文件来实现对个项目里面所有容器的统一管理。这点对于更加复杂的系统尤为重要,我当前的理解是compose对项目的迁移以及项目内的各个容器管理提供了便利。docker compose file(以下简称:yaml文件)即前面所提的模板文件,是一个文本文件,compose的核心,compose主要通过在该文件中敲代码来实现对容器们的管理。yaml文件当前有三大版本,即版本 1,2,2.x,3.x,这里我把2和2.x归为一大版本.具体信息请看https://docs.docker.com/compose/compose-file/compose-versioning/

compose file versiondocker engine release

compose安装网址:https://github.com/docker/compose/releases/ 在这个网址里可以看到各个版本的compose对docker engine版本的要求、支持的yaml文件以及相关的安装命令。我要用的是compose 1.5.2,它要求docker engine版本1.7.1及以上,支持yaml文件版本为1。附上安装命令:
注意:`uname -s` `uname -m`外边的两个`是键盘上esc建下的反引号`而非单引号

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

安装完成后使用

docker-compose version

看见版本信息说明安装成功。

相关资料貌似不太好找啊。博主是个菜鸟,只知道官网上还有些重要信息可以参考,奉上docker compose用户手册:https://docs.docker.com/compose/overview/

二、一个简单的docker compose应用实例


我是知识的搬运工。。。。以下内容来源于《docker in practice》

1.创建一个文件夹,该文件夹名将用作后续的项目名;创建三个文件 docker-compose.yml、Dockerfile、app.py

创建文件夹
#mkdir test
创建三个文件
#touch app.py Dockerfile docker-compose.yml

2.使用vi命令进入文本编辑,例如app.py文本编辑
vi命令的使用自行百度啦,不赘述了

#vi app.py

① app.py内容为
注意:__name__两边分别有两个_

from flask import Flask
from redis import Redis
app =Flask(__name__)
redis=Redis(host='redis',port=6379) 

@app.route('/')
def hello():
        count =redis.incr('hits')
        return 'Hello World!该页面已被访问{} 次\n'.format(count) 

if __name__ == "__main__":     
        app.run(host="0.0.0.0",debug=True)

② Dockerfile 文本内容:

FROM python:3.6-alpine
ADD . /codeWORKDIR /code
RUN pip install redis flask
CMD ["python","app.py"]

③docker-compose.yml文本内容(格式很重要,该换行的换行,改空格的空格,否则会报乱七八糟的错)

web:
  build: .
  ports:
      - "5000:5000"
  links:
      - redis
redis:
  image: "redis:alpine"
  hostname: redis

3.使用

docker-compose up -d 

实现该服务test的启动,访问http://localhost:5000 即可看见效果

三、总结


1.学习新技术请阅读官方文档
2.读英文。英译中有时挺坑得,有能力直接阅读英文的话往往理解得更好一些
3.套用一句现在的流行语,使用docker compose,你就能把项目里使用的容器们安排得明明白白得
4.遇到错误静下心来认真地读错误信息,实在不行再百度吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值