Docker Compose基本介绍
生活随笔
收集整理的這篇文章主要介紹了
Docker Compose基本介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Docker Compose
什么是docker compose
1. Compose是一個(gè)定義和管理多容器的工具,使用Python語(yǔ)言編寫。
2. 使用Compose配置文件描述多個(gè)容器應(yīng)用的架構(gòu),比如使用什么鏡像、數(shù)據(jù)卷、網(wǎng)絡(luò)、映射端口等;
3. 然后一條命令管理所有服務(wù),比如啟動(dòng)、停止、重啟等。
docker compose作用
1. 現(xiàn)在我們要部署django項(xiàng)目,需要 nginx+mysql+redis+nginx等
2. 我們需要開啟四個(gè)docker容器進(jìn)行部署每一個(gè)組件,如果每個(gè)容器單獨(dú)管理太過(guò)于復(fù)雜,而且可能是給客戶部署項(xiàng)目
- 每一個(gè)容器啟動(dòng)都是有說(shuō)法的,比如celery會(huì)使用redis,如果redis沒有啟動(dòng)先啟動(dòng)celery服務(wù)起不來(lái)
- 我們的django項(xiàng)目會(huì)使用 mysql、還會(huì)使用redis,如果這兩個(gè)沒有啟動(dòng)而先啟動(dòng)django項(xiàng)目,也會(huì)報(bào)錯(cuò)
3. docker compose就是一個(gè)可以同時(shí)管理一個(gè)項(xiàng)目中的多個(gè)docker容器的工具,一鍵部署啟動(dòng)
安裝docker compose
安裝docker compose
[root@linux-node4 ~]# curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose [root@linux-node4 ~]# chmod +x /usr/local/bin/docker-composedocker-compose配置文件解析
version: '3' # cocker compose版本號(hào)services: # 頂級(jí)配置文件(名稱自己寫)mysql: # 服務(wù)名: 容器建通信、管理容器(mysql這個(gè)容器取的名字,也是自己寫的)image: mysql:5.7 # 引入官方mysql鏡像(可以大家自己的hub倉(cāng)庫(kù),中大型公司都會(huì)自己搭建docker hub倉(cāng)庫(kù))volumes:- ./mysql:/var/lib/mysql # 把當(dāng)前文件夾下的 ./mysql文件夾掛載到docker容器 /var/lib/mysql 路徑下expose:- "3306" # 將當(dāng)前容器的端口3306端口暴露給link到本容器的容器restart: always # 宿主機(jī)重啟自動(dòng)拉起這個(gè)docker容器environment:- MYSQL_ROOT_PASSWORD=root # mysql服務(wù)器root密碼root- MYSQL_DATABASE=djangodocker # 創(chuàng)建數(shù)據(jù)庫(kù) djangodocker- MYSQL_USER=django # 創(chuàng)建一個(gè)用戶 django- MYSQL_PASSWORD=django # 用戶密碼為django- 單獨(dú)部署一個(gè)nginx- 安裝nginx服務(wù)- 配置nginx.conf- 配置 /etc/nginx/conf.d/*.conf- 訪問(wèn)端口nginx:image: nginx:alpinevolumes:- ./nginx/nginx.conf:/etc/nginx/nginx.conf- ./nginx/conf:/etc/nginx/conf.d- ./web/staticfiles:/django_staticports:- "80:80" # 綁定容器的80端口到主機(jī)的80端口depends_on:- web # 必須先啟動(dòng)web容器然才能啟動(dòng)nginx容器redis:image: redis:alpineexpose:- "6379"restart: alwaysweb:build: .# command: python manage.py runserver 0:8000# ports:# - "8000:8000"command: uwsgi --ini uwsgi.ini # 啟動(dòng)uwsgi命令working_dir: /code/web # 項(xiàng)目工作路徑volumes:- .:/code # 將當(dāng)前文件夾下所有文件掛載到容器的 /code 文件夾expose:- "8000"depends_on: # 必須mysql和reids容器啟動(dòng)后才能啟動(dòng)web容器- mysql- rediscelery:build: .command: celery -A web worker -l infoworking_dir: /code/webvolumes:- .:/codedepends_on:- mysql- redis啟動(dòng)運(yùn)行
$ docker-compose up -d # 啟動(dòng)所有容器$ docker-compose logs celery # 查看celery運(yùn)行日志$ docker-compose down # 關(guān)閉所有容器啟動(dòng)后訪問(wèn):http://192.168.56.11compose 配置常用字段
常用命令
總結(jié)
以上是生活随笔為你收集整理的Docker Compose基本介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Django + Uwsgi + Ngi
- 下一篇: Celery定时任务异步任务