背景
之前已经把docker的常用命令都试了一遍,也通过命令启动了一个django+mysql+redis的应用。需要敲很多行命令才能完成,感觉还是有些麻烦。
有鉴于此,正好可以尝试一下docker-compose,通过一个yml文件,就能启动一个服务。
docker-compose简介
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you create and start all the services from your configuration. To learn more about all the features of Compose see the list of features.
有点类似AWS的栈的概念,通过compose把一堆docker启动并组合起来,就是一个完整的服务。
与dockerfile的区别:
- docerfile对应的是一个docker,compose定义的是一组docker。
install
1 | sudo -i |
把当前用户加到docker组
由于docker的运行需要root权限,在非root用户时每次都要输入sudo
,有点麻烦。
可以把当前用户加入到docker组,这样就不用每次都输入sudo了,方法
- sudo vi /etc/group
- 在docker组的最后加入当前用户名
1
docker:x:993:your_name
简单的docker-compose
代码在https://github.com/CodeJuan/test_docker_compose
创建一个app.py
1 | from flask import Flask |
创建requirements.txt
1 | flask |
这里没有指定版本,那么pip install的就是最新的版本
创建Dockerfile
1 | FROM daocloud.io/python:2-onbuild |
docker-compose.yml
1 | web: |
DaoCloud的redis默认有随机密码
所以需要给redis写一个dockerfile1
2
3
4FROM daocloud.io/daocloud/dao-redis:master-init
# 设置环境变量,表示不需要密码
ENV REDIS_PASS=**None**
本博客欢迎转发,但请保留原作者信息
github:codejuan
博客地址:http://blog.decbug.com/