使用docker容器的大多数人都是因为想要隔离不同运行环境的差异,使得自己的应用能更好的移植和部署。那么我们来看看掌握docker需要掌握哪些方面。

1,搭建docker环境

2,编译镜像并将其运行成容器

3,将自己的应用压缩在多个容器中

4,在一个集群上部署自己的应用

5,通过增加后台数据库来保存服务

6,发表自己部署好的应用

一、常用命令行

1,查看docker版本

docker --version

或者用docker info 获取更多版本信息和容器信息

2,查看docker 镜像

docker image ls 或者docker images

3,查看跟容器相关的命令

docker container  --help

4 ,dockerfile 文件实例

有上图可知,在此dockerfile文件中需要准备app.py和requirements.txt文件,其中requirements文件主要写运行环境的依赖项(库),上例中需要安装flask 和redis,故requirements内容为

Flask

Redis

再用命令行 pip install -r requirements.txt安装python版本的flask和redis库。

再是app.py

from flask import Flask
from redis import Redis, RedisError
import os
import socket # Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2) app = Flask(__name__) @app.route("/")
def hello():
try:
visits = redis.incr("counter")
except RedisError:
visits = "<i>cannot connect to Redis, counter disabled</i>" html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>" \
"<b>Visits:</b> {visits}"
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits) if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)

由于上述步骤只安装了依赖项并没有运行redis,故运行app文件时会打印except后的内容。

将这三个文件放在一个目录下,然后运行

docker build -t friendlyhello .

说明:. 是表示运行在当前目录,friendlyhello是镜像的名字,具体含义可通过docker help build 来查询。

随后检验该镜像是否成功,运行docker images

最后将镜像运行成容器

docker run -p 4000:80 friendlyhello

在浏览器打开链接 http://localhost:4000 和查看到app文件的输出内容

或者通过命令行 curl http://localhost:4000来查看输出。

至此,一个docker容器的创建和运行过程已经实现。

本文参考了docker官网,感兴趣的读者可自行查看https://docs.docker.com/get-started/part2/#tag-the-image

最新文章

  1. 其实Unix很简单
  2. 小菜学Chromium之OpenGL学习之二
  3. MongoDB之二(增删查改)
  4. BestCoder Round #81 (div.2) B Matrix
  5. const关键字与指针
  6. 如何在Windows上配置EBS R12.1.3的OAF开发环境
  7. do...while(0)神奇
  8. php学习笔记——语言切换
  9. POJ 1704 Georgia and Bob(阶梯博弈+证明)
  10. 使用PHP的strstr()函数来统计一段字符串中元音字母的个数(区分大小写)
  11. 《java入门第一季》之UDP协议下的网络编程详解
  12. Spring框架xml配置中属性ref与value的区别
  13. Java 问题定位工具 ——jstack
  14. jQuery绑定事件方法及区别(bind,click,on,live,one)
  15. 设计模式 笔记 单例模式 Singleton
  16. SQL2008配置管理工具服务显示远程过程调用失败
  17. 2018.07.20 atcoder Largest Smallest Cyclic Shift(贪心)
  18. spring复杂数据类型传递
  19. 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言
  20. Robot Framework-断言函数

热门文章

  1. AE-----合成
  2. 20145203盖泽双 《Java程序设计》第7周学习总结
  3. 【转】python中的对象拷贝
  4. set集合HashSet
  5. smtp ssl模式邮件发送与附件添加
  6. C语言程序设计I—第七周教学
  7. relu6激活函数
  8. jQuery----JQuery动画(hide()和show())(上)
  9. redis 数据库随笔 (一)
  10. go 数组、切片