這篇文章主要介紹了Compose怎么安裝和使用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Compose怎么安裝和使用文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
廣宗網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
compose簡(jiǎn)介
compose的前身是fig,fig被docker收購(gòu)之后正式更名為compose,compose向下兼容fig。compose是一個(gè)用于定義和運(yùn)行多容器docker應(yīng)用的工具,只需要一個(gè)compose的配置文件和一個(gè)簡(jiǎn)單的命令就可以創(chuàng)建并運(yùn)行應(yīng)用所需的所有容器。在配置文件中,所有容器通過(guò)services
來(lái)定義,并使用docker-compose
命令啟動(dòng)或停止容器以及所有依賴容器。
安裝compose
compose的安裝方式有多種,這里推薦使用curl
命令安裝,在安裝之前,要確保你的機(jī)器上已經(jīng)安裝了docker,可以運(yùn)行sudo docker version
命令來(lái)確認(rèn)是否已安裝了docker。截至目前,compose的最新發(fā)布版為1.11.2
,下面演示在一臺(tái)已經(jīng)安裝好docker的linux主機(jī)上安裝compose。
安裝很簡(jiǎn)單,只需要執(zhí)行下面的命令即可:
復(fù)制代碼 代碼如下:
sudo curl -l " -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é)果。
除了這種安裝方式之外,還可以通過(guò)python的pip命令安裝或?qū)ompose安裝成docker容器,詳情請(qǐng)參見(jiàn)。
如果要卸載compose,可以執(zhí)行sudo rm /usr/local/bin/docker-compose
命令。
compose入門
下面我們通過(guò)一個(gè)簡(jiǎn)單的例子演示compose的使用步驟,使用python構(gòu)建一個(gè)web應(yīng)用,該應(yīng)用使用flask框架,并在redis中維護(hù)一個(gè)命中計(jì)數(shù)(即使你不熟悉python也沒(méi)有關(guān)系,你甚至不需要安裝python和redis,我們會(huì)從容器中獲取這些依賴環(huán)境)。
創(chuàng)建工程
首先需要一個(gè)文件夾作為項(xiàng)目文件夾:
mkdir composetest cd composetest
在項(xiàng)目文件夾下創(chuàng)建一個(gè)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)
在項(xiàng)目文件夾下創(chuàng)建一個(gè)requirements.txt
的文件,并將下面的代碼拷貝并粘貼到該文件中:
flask redis
到此,我們已經(jīng)完成了新建項(xiàng)目,編碼,添加依賴等工作。
創(chuàng)建dockerfile
下面我們創(chuàng)建一個(gè)dockerfile
文件用于構(gòu)建docker鏡像,該鏡像包含了運(yùn)行該web應(yīng)用的所有依賴,包括python運(yùn)行環(huán)境。
在項(xiàng)目文件夾下創(chuàng)建一個(gè)dockerfile
文件,并將下面的內(nèi)容拷貝并粘貼到該文件中:
from python:3.4-alpine add . /code workdir /code run pip install -r requirements.txt cmd ["python", "app.py"]
大概解釋一下這個(gè)配置文件:
使用python-3.4-alpine作為基礎(chǔ)鏡像
將當(dāng)前目錄添加到鏡像中/code目錄下
將/code設(shè)置為工作目錄
安裝python依賴
設(shè)置默認(rèn)執(zhí)行命令
在compose文件中定義services
在項(xiàng)目文件夾下創(chuàng)建一個(gè)docker-compose.yml
文件,并將下面的內(nèi)容拷貝并粘貼到該文件中:
version: '2' services: web: build: . ports: - "5000:5000" volumes: - .:/code redis: image: "redis:alpine"
該配置文件中包含兩個(gè)services,即web和redis。web會(huì)使用當(dāng)前目錄中的dockerfile文件構(gòu)建鏡像,并將容器的5000端口暴露給主機(jī),然后將項(xiàng)目文件夾掛載到容器中的/code目錄下;redis使用官方發(fā)布的鏡像構(gòu)建。
構(gòu)建并運(yùn)行
執(zhí)行下面的命令構(gòu)建并運(yùn)行容器:
sudo docker-compose up
容器構(gòu)建完成并啟動(dòng)后,可以在瀏覽器中輸入http://localhost:5000查看結(jié)果。頁(yè)面會(huì)打印“hello world! i have been seen 1 times.”,刷新頁(yè)面后,計(jì)數(shù)會(huì)累加變成2。
更新應(yīng)用
由于項(xiàng)目文件夾掛載到了容器中,所以我們可以直接修改項(xiàng)目文件夾的應(yīng)用,修改的結(jié)果立即反應(yīng)到容器中,而不用重新啟動(dò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)建并啟動(dòng)容器,是以前臺(tái)的方式啟動(dòng)的,如果希望以后臺(tái)啟動(dòng),可以添加參數(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
命令以后臺(tái)方式啟動(dòng),可以用docker-compose stop
命令停止。docker-compose down --volumes
命令可以停止容器并將其刪除, --volumns
表示同時(shí)刪除redis數(shù)據(jù)文件目錄。
有關(guān)compose的更多命令,可以通過(guò)sudo docker-compose --help
查看。
關(guān)于“Compose怎么安裝和使用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Compose怎么安裝和使用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。