资讯专栏INFORMATION COLUMN

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

BWrong / 2401人阅读

摘要:使用构建一个创建一个文件夹创建脚本这个脚本使用了和的包,并且启动了一个服务端口创建构建的由于在的时候,默认会去官方去获取,国内是无法访问的,所以这里使用了的镜像去下载包。

使用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

相关文章

  • 慕课网_《Docker入门》学习总结

    摘要:时间年月日星期六说明本文部分内容均来自慕课网。必填用于执行命令,当执行完毕后,将产生一个新的文件层。可选指定此镜像启动时默认执行命令。可选用于指定需要暴露的网络端口号。可选向镜像中挂载一个卷组。 时间:2017年09月16日星期六说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com 教学源码:无 学习源码:无 第一章:课程简介 1-1 课程介绍 Docke...

    CoorChice 评论0 收藏0
  • Dockerfile 与 Compose 环境搭建学习笔记(一)

    摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...

    TZLLOG 评论0 收藏0
  • Dockerfile 与 Compose 环境搭建学习笔记(一)

    摘要:的主要作用是自己根据基础镜像,重新定制镜像,而不是直接从官方仓库拿现成的使用。以接下来要构建的环境来说明下,下面我将要搭建一个的开发环境,需要进行配合。它的主要作用是持久化数据,避免容器销毁后内部数据丢失暴露到宿主机的端口。 以前一直使用 Vagrant 作为自己的开发环境,并且在上家公司也推行大家采用 Vagrant 作为开发环境,保障公司使用的是同一套开发环境。随着docker的流...

    ityouknow 评论0 收藏0
  • Docker-Compose学习笔记(1)安装简介

    摘要:概述是一个用来定义和运行复杂应用的工具。使用,用户通过来进行构建。使用,不再需要使用脚本来启动容器。在配置文件中,所有的容器通过来定义,然后通过脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。 概述 Docker Compose是一个用来定义和运行复杂应用的Docker工具。使用Compose,你可以在一个文件中定义一个多容器应用,然后使用一条命令来启动你的应用,完成...

    shiyang6017 评论0 收藏0

发表评论

0条评论

BWrong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<