Docker-compose综合训练
一. 实验目的:
  1. 熟悉Docker-compose的基本工作原理;
  2. 熟悉Docker-compose安装
  3. 熟悉Docker compose命令基础
  4. 熟悉Docker compose配置文件
二. 实验环境:
Ubuntu16.04+Docker
三. 实验内容:
  1. 练习使用docker-compose操作的常用命令;
四、 实验练习:
  1. 创建一个Python应用, 使用Flask,将数值记入Redis
建立一个应用的目录,创建Python
# mkdir python
# cd python
# vi app.py
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
 
@app.route('/')
def hello():
redis.incr('hits')
return 'Hello World! I have been seen %s times.' % redis.get('hits')
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
 
 
# vi requirements.txt
flask
Redis
 
创建 Dockerfile
在同一目录下,创建Dockerfile
对上面的Dockerfile做一下简单说明:
  • 容器使用Python 2.7的镜像
  • 将当前目录下文件拷贝到容器内/code
  • 指定工作目录为/code
  • 安装python需要的库:flask, redis
  • 容器执行命令 python app.py
 
创建编排脚本
在同一目录下,创建 docker-compose.yml
# cat docker-compose.yml
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
对上面的编排脚本做一下简单说明:
这个应用定义了两个服务:web, redis
web容器通过当前路径下的Dockerfile生成
web容器内的5000端口映射到主机的5000端口
将当前目录挂载到web容器内/code
web容器依赖于redis容器
redis容器从Docker Hub获取镜像
启动应用
会执行编排脚本,分别制作和抓取web,redis镜像,启动容器
# docker-compose up
访问应用
 
 
  1. 创建一个Wordpress应用
 建立一个应用的目录
# mkdir wordpress
# cd wordpress 
创建 并编译docker-compose.yml
 
 
启动应用
# docker-compose up -d
 
确认
# docker-compose ps
 
 
 访问应用
 

最新文章

  1. 浏览器加载和渲染HTML的过程(标准定义的过程以及现代浏览器的优化)
  2. WIN7下强制分第四个主分区的方法
  3. JSTL的if-else表式
  4. Oracle如何操作级联删除
  5. 《算法:C语言实现》阅读笔记
  6. 用Filezilla往ubuntu虚拟机上传文件
  7. Jquery插件之信息弹出框showInfoDialog(成功、错误、警告、通知)
  8. 零基础创建RCP工程
  9. Python 第五篇(下):系统标准模块(shutil、logging、shelve、configparser、subprocess、xml、yaml、自定义模块)
  10. ztree学习笔记(一)
  11. Lucene 源码分析之倒排索引(二)
  12. pyqt5在textBrowser添加文本并自动滑动到底
  13. 如何在Linux下查看版本信息
  14. PHP计算显示平均温度、五个最低及最高温度
  15. ABP框架系列之四十:(Notification-System-通知系统)
  16. pip升级Python程序包
  17. python安装mysqlclient模块时报mysql_config not found解决方法
  18. javaweb(二十四)——jsp传统标签开发
  19. BZOJ 1483 梦幻布丁(链表+启发式合并)
  20. jquery tmpl模板

热门文章

  1. python generator与coroutine
  2. 读取ClassPath下resource文件的正确姿势
  3. ajax 的简单请求,get的加法运算,post加法运算,用户登录认证
  4. 环形缓存RingBuf的几种实现方式(数组,链表),及Disruptor的分析
  5. JavaSE核心知识
  6. 宏旺半导体深度剖析嵌入式存储芯片eMMC原理 一篇概括大全
  7. jira设置问题关闭之后不能继续编辑和添加备注
  8. 修改Windows10的host文件。
  9. Java编程思想:内部类中级部分
  10. .NET CORE上传文件到码云仓库【搭建自己的图床】