博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker 入门(Mac环境)- part 2 容器(container)
阅读量:7046 次
发布时间:2019-06-28

本文共 2146 字,大约阅读时间需要 7 分钟。

part-2 容器(container)

简介

Docker架构有三个层面,从高到低如下:

  • stack(栈)
  • services(服务)
  • containers(容器)

现在接触的这些在容器这一层里,类似于底层的基础;服务的话就是在此基础上实现了哪些功能/服务;更高层的栈则是定义了这些服务内在的一些交互

docker的优势

以往开发一个东西,在本机开发后还要去服务器上去部署,就涉及到各种环境的配置,各种依赖软件的安装,很麻烦;docker相当于提供了一个类集装箱的服务,把这些东西都打包好,提供标准的服务,你把集装箱搬到这个船上,那个码头上,他都可以放在那里,提供开发好的服务;要把这些东西打包,当然就需要配置,配置文件就称之为 dockerfile;也就是说:dockerfile决定了容器中的环境,而这个环境是与系统环境隔离的。

docker示例

  1. 某文件夹下创建一个Dockerfile文件,内容如下:
# Use an official Python runtime as a parent imageFROM python:2.7-slim# Set the working directory to /appWORKDIR /app# Copy the current directory contents into the container at /appADD . /app# Install any needed packages specified in requirements.txtRUN pip install --trusted-host pypi.python.org -r requirements.txt# Make port 80 available to the world outside this containerEXPOSE 80# Define environment variableENV NAME World# Run app.py when the container launchesCMD ["python", "app.py"]
  1. 创建requirements.txt和app.py文件,内容分别是
FlaskRedis
from flask import Flaskfrom redis import Redis, RedisErrorimport osimport socket# Connect to Redisredis = 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 = "cannot connect to Redis, counter disabled"    html = "

Hello {name}!

" \ "Hostname: {hostname}
" \ "Visits: {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)
  1. 编译(build),docker build -t friendlyhello .
  2. 运行app,docker run -p 4000:80 friendlyhello
  3. 查看 docker image ls,可以看到friendlyhello这个image
  4. 浏览器访问 localhost:4000,可以看到我们用flask写的这个app
  5. 可以使用后台模式启动这个app,命令是docker run -d -p 4000:80 friendlyhello
  6. 后台模式启动的app可以使用 docker container stop container_id 来关闭
  7. 查看docker正在运行的容器,docker ps, 和Linux的ps一样,也可以加上-a的参数来查看全部

分享docker 镜像

git对应有github,docker对应有dockerhub;先注册一个dockerhub账号,然后就可以分享了;

  1. docker login登陆账号
  2. docker tag image来打标签,类似于docker tag friendlyhello wang/get-started:part2
  3. docker push username/repository:tag,来push镜像
  4. 拉取然后运行镜像 docker run -p 4000:80 username/repository:tag

转载地址:http://cozol.baihongyu.com/

你可能感兴趣的文章
JRuby——Java和Ruby的强强联合
查看>>
ipcs和ipcrm用法简介
查看>>
[Go 笔记]关于 Panic和 Recover
查看>>
关于HP Diagnostics
查看>>
Oracle中的二进制、八进制、十进制、十六进制相互转换函数
查看>>
关于empty函数的输出
查看>>
SCI
查看>>
【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统
查看>>
分享一组Rpg Marker人物行走,游戏素材图片,共20张图片
查看>>
POJ 1947 Rebuilding Road(树形DP)
查看>>
武汉性能测试研讨会资料共享
查看>>
Masonry+Infinite-Scroll实现无刷新无分页完美瀑布流(转)
查看>>
WPF DataTrigger的两个用法
查看>>
细数:九部美国励志电影
查看>>
漫说单例模式--宝宝成长记 你真的了解了吗?
查看>>
yii表单
查看>>
惊艳的HTML5动画特效及源码
查看>>
2014年QS世界大学排名
查看>>
面向对象程序设计与面向过程程序设计解析
查看>>
公网服务 基础知识
查看>>