国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 服務(wù)器 > Web服務(wù)器 > 正文

Docker系列之使用Docker Compose編排容器

2024-09-01 13:55:03
字體:
供稿:網(wǎng)友

1. 前言

Docker Compose 是 Docker 容器進(jìn)行編排的工具,定義和運(yùn)行多容器的應(yīng)用,可以一條命令啟動(dòng)多個(gè)容器。

使用Compose 基本上分為三步:

1.Dockerfile 定義應(yīng)用的運(yùn)行環(huán)境

2.docker-compose.yml 定義組成應(yīng)用的各服務(wù)

3.docker-compose up 啟動(dòng)整個(gè)應(yīng)用

2. 安裝Compose

直接從github下載即可,前提要先安裝Docker,版本要1.9.1以上

Note that Compose 1.8.0 requires Docker Engine 1.10.0 or later for version 2 of the Compose File format, and Docker Engine 1.9.1 or later for version 1.

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

也可以用pip或官網(wǎng)的run.sh腳本安裝

安裝后確認(rèn)

# docker-compose --version

Docker,Compose,編排容器

3. 使用Compose

3.1 創(chuàng)建一個(gè)Python應(yīng)用, 使用Flask,將數(shù)值記入Redis

3.1.1 建立一個(gè)應(yīng)用的目錄,創(chuàng)建Python文件

# mkdir python# cd python# vi app.py from flask import Flaskfrom redis import Redisapp = Flask(__name__)redis = Redis(host='redis', port=6379)@app.route('/')def hello():  redis.incr('hits')  return 'Hello World! I have been seen %s times.' % redis.get('hits')if __name__ == "__main__":  app.run(host="0.0.0.0", debug=True)# vi requirements.txt flaskredis

3.1.2 創(chuàng)建 Dockerfile

在同一目錄下,創(chuàng)建Dockerfile

# vi Dockerfile FROM python:2.7ADD . /codeWORKDIR /codeRUN pip install -r requirements.txtCMD python app.py

對(duì)上面的Dockerfile做一下簡(jiǎn)單說明:

  1. 容器使用Python 2.7的鏡像
  2. 將當(dāng)前目錄下文件拷貝到容器內(nèi)/code
  3. 指定工作目錄為/code
  4. 安裝python需要的庫(kù):flask, redis
  5. 容器執(zhí)行命令 python app.py

3.1.3 創(chuàng)建編排腳本

在同一目錄下,創(chuàng)建 docker-compose.yml

# cat docker-compose.yml version: '2'services: web:  build: .  ports:   - "5000:5000"  volumes:   - .:/code  depends_on:   - redis redis:  image: redis

對(duì)上面的編排腳本做一下簡(jiǎn)單說明:

  1. 這個(gè)應(yīng)用定義了兩個(gè)服務(wù):web, redis
  2. web容器通過當(dāng)前路徑下的Dockerfile生成
  3. web容器內(nèi)的5000端口映射到主機(jī)的5000端口
  4. 將當(dāng)前目錄掛載到web容器內(nèi)/code
  5. web容器依賴于redis容器
  6. redis容器從Docker Hub獲取鏡像

3.1.4 啟動(dòng)應(yīng)用

會(huì)執(zhí)行編排腳本,分別制作和抓取web,redis鏡像,啟動(dòng)容器

# docker-compose up

Docker,Compose,編排容器

Docker,Compose,編排容器

Docker,Compose,編排容器

Docker,Compose,編排容器

3.1.5訪問應(yīng)用

http://localhost:5000/

Docker,Compose,編排容器

3.2 其他命令

3.2.1 daemon模式啟動(dòng)/停止

# docker-compose up -d

Docker,Compose,編排容器

# docker-compose stop

Docker,Compose,編排容器

3.2.2 查看信息

# docker-compose ps

Docker,Compose,編排容器

3.2.3 對(duì)容器執(zhí)行命令(一次)

#docker-compose run services cmd

例如:查看web容器環(huán)境變量

# docker-compose run web env

3.3 創(chuàng)建一個(gè)Wordpress應(yīng)用

3.3.1建立一個(gè)應(yīng)用的目錄

# mkdir wordpress# cd wordpress

3.3.2 創(chuàng)建 docker-compose.yml

# cat docker-compose.yml version: '2'services: db:  image: mysql:5.7  volumes:   - "./.data/db:/var/lib/mysql"  restart: always  environment:   MYSQL_ROOT_PASSWORD: wordpress   MYSQL_DATABASE: wordpress   MYSQL_USER: wordpress   MYSQL_PASSWORD: wordpress wordpress:  depends_on:   - db  image: wordpress:latest  links:   - db  ports:   - "8000:80"  restart: always  environment:   WORDPRESS_DB_HOST: db:3306   WORDPRESS_DB_PASSWORD: wordpress

MySQL的數(shù)據(jù)目錄掛載到當(dāng)前目錄下,./.data/db不存在時(shí)會(huì)自動(dòng)創(chuàng)建。

3.3.3 啟動(dòng)應(yīng)用

# docker-compose up -d

Docker,Compose,編排容器

Docker,Compose,編排容器

Docker,Compose,編排容器

3.3.4 確認(rèn)

# docker-compose ps

Docker,Compose,編排容器

3.3.5 訪問應(yīng)用

http://localhost:8000/

Docker,Compose,編排容器

初始化設(shè)置后,就可以看到Wordpress的頁(yè)面

Docker,Compose,編排容器

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 远安县| 蒙山县| 措勤县| 新野县| 南召县| 隆化县| 信宜市| 兴义市| 福海县| 顺义区| 宜黄县| 汨罗市| 大关县| 襄樊市| 连云港市| 杂多县| 无极县| 循化| 黎平县| 榆林市| 阜宁县| 卓尼县| 保靖县| 和静县| 桦川县| 囊谦县| 额济纳旗| 马尔康县| 凌源市| 晋江市| 云安县| 宕昌县| 邯郸县| 迁安市| 观塘区| 彩票| 房产| 甘德县| 方正县| 比如县| 开化县|