溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Docker Compose編排容器如何使用

發(fā)布時(shí)間:2022-05-20 15:07:56 來(lái)源:億速云 閱讀:145 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Docker Compose編排容器如何使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Docker Compose編排容器如何使用”吧!

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 flask
from redis import redis

app = 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 
flask
redis

3.1.2 創(chuàng)建 dockerfile

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

# vi dockerfile 
from python:2.7
add . /code
workdir /code
run pip install -r requirements.txt
cmd python app.py

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

  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)單說(shuō)明:

  1. 這個(gè)應(yīng)用定義了兩個(gè)服務(wù):web, redis

  2. web容器通過(guò)當(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訪問(wèn)應(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 訪問(wèn)應(yīng)用

http://localhost:8000/

Docker Compose編排容器如何使用

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

Docker Compose編排容器如何使用

感謝各位的閱讀,以上就是“Docker Compose編排容器如何使用”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Docker Compose編排容器如何使用這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI