Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

CodeStellarEclipse
• 阅读 5551

使用docker-compose构建一个python-web app

  1. 创建一个文件夹 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.\n'.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.查看验证,在准备好文件后,大概是这样得

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

6.最后我们通过使用docker-compose构建这yml文件

$docker-compose up

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

访问服务5000端口

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

这个时候,我们可以多刷新几次,可以发先times会增加,我们的服务运行成功。

我们使用docker ps 可以发现docker-compose帮我们启动好了2个容器
Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

7.我们通过vim修改宿主机下的app.py文件,由于容器的数据卷是来源,如下效果

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

8.此时,docker-compose up以后,他未后台执行,如果我们需要让他后台运行,我们需要如下操作

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

CTRL+C终止进程,

重新以分离的方式启动服务

$docker-compose up -d 

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

docker ps 和docker-compose ps 查看正在运行服务

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

9.查看
docker-compose运行命令允许您为您的服务运行一次性命令,比如查看web服务的环境

$docker-compose run web env

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

但是如果使用docker ps -a就会发现

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

10.使用docker-compose stop 终止服务
如果你是使用docker-compose up -d 进行的服务启动,那么你需要通过stop来终止关闭服务

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

11.最后使用docker-compose down 回收资源

Docker-Compose官方学习笔记(2)起步构建一个多容器app应用

同样,down指令运行单独的进行一些资源的回收,

$docker-compose down --volumes
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
3年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Stella981 Stella981
3年前
Linux查看GPU信息和使用情况
1、Linux查看显卡信息:lspci|grepivga2、使用nvidiaGPU可以:lspci|grepinvidia!(https://oscimg.oschina.net/oscnet/36e7c7382fa9fe49068e7e5f8825bc67a17.png)前边的序号"00:0f.0"是显卡的代
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
3年前
ClickHouse性能提升
本文经作者授权,独家转载:作者主页:https://www.jianshu.com/u/8f36a5e63d181\.不要用select\反例:select  from app.user_model正例:select login_id,name,sex from app.user_mo
Stella981 Stella981
3年前
Github标星5300+,专门为程序员开发文档开源管理系统,我粉了
!(https://oscimg.oschina.net/oscnet/a11909a041dac65b1a36b2ae8b9bcc5c432.jpg)码农那点事儿关注我们,一起学习进步!(https://oscimg.oschina.net/oscnet/f4cce1b7389cb00baaab228e455da78d0
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这