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