![e08fb9d36de951935dde3bf7850f9317.png](https://i-blog.csdnimg.cn/blog_migrate/57bd855e710d169cd86e71bd71d30b11.jpeg)
学习了docker的简单使用方法,应该都知道docker run是干啥用的了。
这时候发现有集群和docker-compose这些东西,看概念介绍也看不完全明白。没有大项目使用集群,好像也应用不到呢,要不要学习docker到此为止,现在开始学学其他东西了?
慢慢发现虽然没有大项目,但是本地小镜像要启动的要不少:
docker run -d --restart always -p 1123:1123 -v /tmp1:/tmp1 -v /abc:/abc -w /abc jx1:v1 xxx
docker run -d --restart always -p 1124:1124 -v /tmp1:/tmp1 -v /def:/def -w /def jx2:v1 xxx
docker run -d --restart always -p 1125:1125 -v /tmp1:/tmp1 -v /hij:/hij -w /hij jx3:v1 xxx
docker run -d --restart always -p 1126:1126 -v /tmp1:/tmp1 -v /klm:/klm -w /klm jx4:v1 xxx
而且经常要docker update --restart=no 容器ID1,docker stop 容器ID1,然后再改run再重新执行,挺烦的、不方便,有没省事的方法?有的啊,就是用docker-compose,把这些run都放到docker-compose.yml文件里来配置执行,以后只改这一文件就完事了。
直接看docker-compose.yml文件里面#号后有解释:
version: '3'
services:
#数据库
my57:
image: my57:v1 #镜像:版本
ports:
- 3306:3306 #前面是主机端口,后面是镜像里端口
volumes: #挂载目录
- "/xxx/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/"
- "/xxx/mysql/conf.d/:/etc/mysql/conf.d/"
- "/xxx/mysql/log/:/var/log/mysql/"
- "/xxx/mysql/data/:/var/lib/mysql/"
environment: #环境变量,数据库密码
- MYSQL_ROOT_PASSWORD=123abc
restart: always #意外中断,总是重启
command: --innodb_use_native_aio=0 #0是数据库文件从windows挂载来使用。
#网站1
myweb1:
image: web1:v1
ports:
- 8000:8000
volumes:
- "/xxx/prj1:/usr/prj1"
working_dir: "/usr/prj1"
restart: always
command: "python manage.py runserver 0.0.0.0:8000"
#网站2
myweb2:
image: web2:v1
ports:
- 8010:8010
volumes:
- "/xxx/prj2:/usr/prj2"
working_dir: "/usr/prj2"
restart: always
command: "python3 manage.py runserver 0.0.0.0:8010"
nginx:
image: nginx:1196
ports:
- 5018:80
- 5011:5010
volumes:
- /xxx/nginx/www:/usr/share/nginx/html
- /xxx/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /xxx/nginx/logs:/var/log/nginx
- /xxx/myprj3/static:/abc/myprj3/static
restart: always
![bbff7dbfcf6c6e684ff4cb7c2a2c8958.png](https://i-blog.csdnimg.cn/blog_migrate/5910ee72c6741b4ba7bd3460e8a1aa5e.jpeg)
我的ubuntu系统只有python3没有2,执行pip install docker-compose安装1.27.4版。所以我没有用apt-get install docker-compose来安装,这个可能自动装python2再装compose。。。
![a367d0545729bdc4162263b8b2470781.png](https://i-blog.csdnimg.cn/blog_migrate/169436821d651603cb08dea8e3eaedb5.png)
命令docker-compose ps,可以查看当前的任务,开始是什么都没。
执行docker-compose up -d,任务开始后台执行。
docker-compose stop是全部停止,或者docker-compose stop nginx这样停止某个。
docker-compose start是启动 , docker-compose restart是重启。
如果用docker-compose rm删掉,再执行docker-compose up -d即可。
好了,现在本地环境可以轻松愉快的加很多测试项目一起启动了。