摘要:使用構(gòu)建一個(gè)創(chuàng)建一個(gè)文件夾創(chuàng)建腳本這個(gè)腳本使用了和的包,并且啟動(dòng)了一個(gè)服務(wù)端口創(chuàng)建構(gòu)建的由于在的時(shí)候,默認(rèn)會(huì)去官方去獲取,國(guó)內(nèi)是無(wú)法訪問(wèn)的,所以這里使用了的鏡像去下載包。
使用docker-compose構(gòu)建一個(gè)python-web app
創(chuàng)建一個(gè)文件夾 python-web-app
$mkdir python-web-app $cd python-web-app
2.創(chuàng)建python腳本 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. ".format(count) if __name__ == "__main__": app.run(host="0.0.0.0", debug=True)
這個(gè)腳本使用了flask和redis的包,并且啟動(dòng)了一個(gè)web服務(wù)端口5000
3.創(chuàng)建構(gòu)建python的Dockerfile
FROM python:3.4-alpine ADD . /code WORKDIR /code RUN pip install -r requirements.txt -i https://pypi.douban.com/simple CMD ["python", "app.py"]
由于在pip install 的時(shí)候,pip默認(rèn)會(huì)去官方去獲取,國(guó)內(nèi)是無(wú)法訪問(wèn)的,所以這里使用了douban的鏡像去下載包。
ADD . /code 是把當(dāng)前目錄下的文件添加到容器內(nèi)部的/code 目錄下
4.創(chuàng)建docker-compse.yml 文件
version: "2" services: web: build: . ports: - "5000:5000" volumes: - .:/code redis: image: "redis:alpine"
該文件提供了2個(gè)服務(wù),第一個(gè)是web服務(wù),通過(guò)build當(dāng)前目錄的Dockerfile文件生成,Expose了5000端口。
第二個(gè)服務(wù)是來(lái)自于redis的服務(wù),version表示當(dāng)前使用的compose文件版本.
5.查看驗(yàn)證,在準(zhǔn)備好文件后,大概是這樣得
6.最后我們通過(guò)使用docker-compose構(gòu)建這yml文件
$docker-compose up
訪問(wèn)服務(wù)5000端口
這個(gè)時(shí)候,我們可以多刷新幾次,可以發(fā)先times會(huì)增加,我們的服務(wù)運(yùn)行成功。
我們使用docker ps 可以發(fā)現(xiàn)docker-compose幫我們啟動(dòng)好了2個(gè)容器
7.我們通過(guò)vim修改宿主機(jī)下的app.py文件,由于容器的數(shù)據(jù)卷是來(lái)源,如下效果
8.此時(shí),docker-compose up以后,他未后臺(tái)執(zhí)行,如果我們需要讓他后臺(tái)運(yùn)行,我們需要如下操作
CTRL+C終止進(jìn)程,
重新以分離的方式啟動(dòng)服務(wù)
$docker-compose up -d
docker ps 和docker-compose ps 查看正在運(yùn)行服務(wù)
9.查看
docker-compose運(yùn)行命令允許您為您的服務(wù)運(yùn)行一次性命令,比如查看web服務(wù)的環(huán)境
$docker-compose run web env
但是如果使用docker ps -a就會(huì)發(fā)現(xiàn)
10.使用docker-compose stop 終止服務(wù)
如果你是使用docker-compose up -d 進(jìn)行的服務(wù)啟動(dòng),那么你需要通過(guò)stop來(lái)終止關(guān)閉服務(wù)
11.最后使用docker-compose down 回收資源
同樣,down指令運(yùn)行多帶帶的進(jìn)行一些資源的回收,
$docker-compose down --volumes
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/26916.html
摘要:時(shí)間年月日星期六說(shuō)明本文部分內(nèi)容均來(lái)自慕課網(wǎng)。必填用于執(zhí)行命令,當(dāng)執(zhí)行完畢后,將產(chǎn)生一個(gè)新的文件層??蛇x指定此鏡像啟動(dòng)時(shí)默認(rèn)執(zhí)行命令??蛇x用于指定需要暴露的網(wǎng)絡(luò)端口號(hào)??蛇x向鏡像中掛載一個(gè)卷組。 時(shí)間:2017年09月16日星期六說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com 教學(xué)源碼:無(wú) 學(xué)習(xí)源碼:無(wú) 第一章:課程簡(jiǎn)介 1-1 課程介紹 Docke...
摘要:的主要作用是自己根據(jù)基礎(chǔ)鏡像,重新定制鏡像,而不是直接從官方倉(cāng)庫(kù)拿現(xiàn)成的使用。以接下來(lái)要構(gòu)建的環(huán)境來(lái)說(shuō)明下,下面我將要搭建一個(gè)的開(kāi)發(fā)環(huán)境,需要進(jìn)行配合。它的主要作用是持久化數(shù)據(jù),避免容器銷毀后內(nèi)部數(shù)據(jù)丟失暴露到宿主機(jī)的端口。 以前一直使用 Vagrant 作為自己的開(kāi)發(fā)環(huán)境,并且在上家公司也推行大家采用 Vagrant 作為開(kāi)發(fā)環(huán)境,保障公司使用的是同一套開(kāi)發(fā)環(huán)境。隨著docker的流...
摘要:的主要作用是自己根據(jù)基礎(chǔ)鏡像,重新定制鏡像,而不是直接從官方倉(cāng)庫(kù)拿現(xiàn)成的使用。以接下來(lái)要構(gòu)建的環(huán)境來(lái)說(shuō)明下,下面我將要搭建一個(gè)的開(kāi)發(fā)環(huán)境,需要進(jìn)行配合。它的主要作用是持久化數(shù)據(jù),避免容器銷毀后內(nèi)部數(shù)據(jù)丟失暴露到宿主機(jī)的端口。 以前一直使用 Vagrant 作為自己的開(kāi)發(fā)環(huán)境,并且在上家公司也推行大家采用 Vagrant 作為開(kāi)發(fā)環(huán)境,保障公司使用的是同一套開(kāi)發(fā)環(huán)境。隨著docker的流...
摘要:概述是一個(gè)用來(lái)定義和運(yùn)行復(fù)雜應(yīng)用的工具。使用,用戶通過(guò)來(lái)進(jìn)行構(gòu)建。使用,不再需要使用腳本來(lái)啟動(dòng)容器。在配置文件中,所有的容器通過(guò)來(lái)定義,然后通過(guò)腳本來(lái)啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器。 概述 Docker Compose是一個(gè)用來(lái)定義和運(yùn)行復(fù)雜應(yīng)用的Docker工具。使用Compose,你可以在一個(gè)文件中定義一個(gè)多容器應(yīng)用,然后使用一條命令來(lái)啟動(dòng)你的應(yīng)用,完成...
閱讀 2427·2021-11-25 09:43
閱讀 3516·2021-10-25 09:48
閱讀 1398·2021-09-13 10:24
閱讀 2799·2019-08-29 15:07
閱讀 1344·2019-08-29 13:14
閱讀 3329·2019-08-29 12:22
閱讀 1406·2019-08-29 11:32
閱讀 3312·2019-08-29 11:23