摘要:使用构建一个创建一个文件夹创建脚本这个脚本使用了和的包,并且启动了一个服务端口创建构建的由于在的时候,默认会去官方去获取,国内是无法访问的,所以这里使用了的镜像去下载包。
使用docker-compose构建一个python-web app
创建一个文件夹 python-web-app
$mkdir python-web-app $cd python-web-app
2.创建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服务端口5000
3.创建构建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默认会去官方去获取,国内是无法访问的,所以这里使用了douban的镜像去下载包。
ADD . /code 是把当前目录下的文件添加到容器内部的/code 目录下
4.创建docker-compse.yml 文件
version: "2" services: web: build: . ports: - "5000:5000" volumes: - .:/code redis: image: "redis:alpine"
该文件提供了2个服务,第一个是web服务,通过build当前目录的Dockerfile文件生成,Expose了5000端口。
第二个服务是来自于redis的服务,version表示当前使用的compose文件版本.
5.查看验证,在准备好文件后,大概是这样得
6.最后我们通过使用docker-compose构建这yml文件
$docker-compose up
访问服务5000端口
这个时候,我们可以多刷新几次,可以发先times会增加,我们的服务运行成功。
我们使用docker ps 可以发现docker-compose帮我们启动好了2个容器
7.我们通过vim修改宿主机下的app.py文件,由于容器的数据卷是来源,如下效果
8.此时,docker-compose up以后,他未后台执行,如果我们需要让他后台运行,我们需要如下操作
CTRL+C终止进程,
重新以分离的方式启动服务
$docker-compose up -d
docker ps 和docker-compose ps 查看正在运行服务
9.查看
docker-compose运行命令允许您为您的服务运行一次性命令,比如查看web服务的环境
$docker-compose run web env
但是如果使用docker ps -a就会发现
10.使用docker-compose stop 终止服务
如果你是使用docker-compose up -d 进行的服务启动,那么你需要通过stop来终止关闭服务
11.最后使用docker-compose down 回收资源
同样,down指令运行多带带的进行一些资源的回收,
$docker-compose down --volumes
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26916.html
摘要:时间年月日星期六说明本文部分内容均来自慕课网。必填用于执行命令,当执行完毕后,将产生一个新的文件层。可选指定此镜像启动时默认执行命令。可选用于指定需要暴露的网络端口号。可选向镜像中挂载一个卷组。 时间:2017年09月16日星期六说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com 教学源码:无 学习源码:无 第一章:课程简介 1-1 课程介绍 Docke...
摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...
摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...
摘要:概述是一个用来定义和运行复杂应用的工具。使用,用户通过来进行构建。使用,不再需要使用脚本来启动容器。在配置文件中,所有的容器通过来定义,然后通过脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。 概述 Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成...
阅读 2242·2021-11-25 09:43
阅读 3434·2021-10-25 09:48
阅读 1306·2021-09-13 10:24
阅读 2721·2019-08-29 15:07
阅读 1224·2019-08-29 13:14
阅读 3232·2019-08-29 12:22
阅读 1330·2019-08-29 11:32
阅读 3208·2019-08-29 11:23