您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Docker容器編排利器Compose怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Compose簡介
Compose的前身是Fig,F(xiàn)ig被Docker收購之后正式更名為Compose,Compose向下兼容Fig。Compose是一個用于定義和運(yùn)行多容器Docker應(yīng)用的工具,只需要一個Compose的配置文件和一個簡單的命令就可以創(chuàng)建并運(yùn)行應(yīng)用所需的所有容器。在配置文件中,所有容器通過services
來定義,并使用docker-compose
命令啟動或停止容器以及所有依賴容器。
安裝Compose
Compose的安裝方式有多種,這里推薦使用curl
命令安裝,在安裝之前,要確保你的機(jī)器上已經(jīng)安裝了Docker,可以運(yùn)行sudo docker version
命令來確認(rèn)是否已安裝了Docker。截至目前,Compose的最新發(fā)布版為1.11.2
,下面演示在一臺已經(jīng)安裝好Docker的Linux主機(jī)上安裝Compose。
安裝很簡單,只需要執(zhí)行下面的命令即可:
sudo curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
等待安裝完畢后,執(zhí)行下面的命令,為docker-compose
添加可執(zhí)行權(quán)限:
chmod +x /usr/local/bin/docker-compose
輸入docker-compose --version
命令可以查看安裝結(jié)果。
除了這種安裝方式之外,還可以通過Python的pip命令安裝或?qū)ompose安裝成Docker容器,詳情請參見https://docs.docker.com/compose/install/#install-as-a-container。
如果要卸載Compose,可以執(zhí)行sudo rm /usr/local/bin/docker-compose
命令。
Compose入門
下面我們通過一個簡單的例子演示Compose的使用步驟,使用Python構(gòu)建一個Web應(yīng)用,該應(yīng)用使用Flask框架,并在Redis中維護(hù)一個命中計數(shù)(即使你不熟悉Python也沒有關(guān)系,你甚至不需要安裝Python和Redis,我們會從容器中獲取這些依賴環(huán)境)。
創(chuàng)建工程
首先需要一個文件夾作為項目文件夾:
mkdir composetest cd composetest
在項目文件夾下創(chuàng)建一個app.py
的文件,并將下面的代碼拷貝并粘貼到該文件中:
from flask import Flask from redis import Redis app = Flask(__name__) redis = Redis(host='redis', port=6379) @app.route('/') def hello(): count = redis.incr('hits') return 'Hello World! I have been seen {} times.\n'.format(count) if __name__ == "__main__": app.run(host="0.0.0.0", debug=True)
在項目文件夾下創(chuàng)建一個requirements.txt
的文件,并將下面的代碼拷貝并粘貼到該文件中:
flask redis
到此,我們已經(jīng)完成了新建項目,編碼,添加依賴等工作。
創(chuàng)建Dockerfile
下面我們創(chuàng)建一個Dockerfile
文件用于構(gòu)建Docker鏡像,該鏡像包含了運(yùn)行該Web應(yīng)用的所有依賴,包括Python運(yùn)行環(huán)境。
在項目文件夾下創(chuàng)建一個Dockerfile
文件,并將下面的內(nèi)容拷貝并粘貼到該文件中:
FROM python:3.4-alpine ADD . /code WORKDIR /code RUN pip install -r requirements.txt CMD ["python", "app.py"]
大概解釋一下這個配置文件:
使用python-3.4-alpine作為基礎(chǔ)鏡像
將當(dāng)前目錄添加到鏡像中/code目錄下
將/code設(shè)置為工作目錄
安裝Python依賴
設(shè)置默認(rèn)執(zhí)行命令
在Compose文件中定義services
在項目文件夾下創(chuàng)建一個docker-compose.yml
文件,并將下面的內(nèi)容拷貝并粘貼到該文件中:
version: '2' services: web: build: . ports: - "5000:5000" volumes: - .:/code redis: image: "redis:alpine"
該配置文件中包含兩個services,即web和redis。web會使用當(dāng)前目錄中的Dockerfile文件構(gòu)建鏡像,并將容器的5000端口暴露給主機(jī),然后將項目文件夾掛載到容器中的/code目錄下;redis使用官方發(fā)布的鏡像構(gòu)建。
構(gòu)建并運(yùn)行
執(zhí)行下面的命令構(gòu)建并運(yùn)行容器:
sudo docker-compose up
容器構(gòu)建完成并啟動后,可以在瀏覽器中輸入http://localhost:5000查看結(jié)果。頁面會打印“Hello World! I have been seen 1 times.”,刷新頁面后,計數(shù)會累加變成2。
更新應(yīng)用
由于項目文件夾掛載到了容器中,所以我們可以直接修改項目文件夾的應(yīng)用,修改的結(jié)果立即反應(yīng)到容器中,而不用重新啟動容器。將app.py文件中的hello方法中的返回值修改成如下:
return 'Hello from Docker! I have been seen {} times.\n'.format(count)
保存后刷新瀏覽器,發(fā)現(xiàn)打印結(jié)果已經(jīng)更新。
Compose的其他命令
上面提到的Componse使用命令構(gòu)建并啟動容器,是以前臺的方式啟動的,如果希望以后臺啟動,可以添加參數(shù)-d,比如下面這樣:
sudo docker-compose up -d
docker-compose ps
命令可以查看正在運(yùn)行的容器:
liuwei@liuwei-Ubuntu:~$ sudo docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------- composetest_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp composetest_web_1 python app.py Up 0.0.0.0:5000->5000/tcp
如果使用sudo docker-compose up -d
命令以后臺方式啟動,可以用docker-compose stop
命令停止。docker-compose down --volumes
命令可以停止容器并將其刪除, --volumns
表示同時刪除redis數(shù)據(jù)文件目錄。
有關(guān)Compose的更多命令,可以通過sudo docker-compose --help
查看。
以上就是Compose的一個基本使用過程,可以發(fā)現(xiàn),Compose將docker run
命令整合到了一個docker-compose.yml
配置文件中,對于大型Docker集群的管理是很方便的,例可以將多個service
組合成更復(fù)雜的service
組,為每個service
指定不同的Dockerfile
,然后把它們link
在一起。
關(guān)于“Docker容器編排利器Compose怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。