Docker教程2 - 容器的使用和Docker的登录

容器()的使用
本篇会介绍如何使用容器 , 创建一个的容器() , 并生成 , 发布和浏览
官方文档
1. 基本配置 , 创建和浏览
首先 , 先创建三个文件 , 分别是: , .txt , app.py
1.1 文件是当前指定的容器()的配置 , 内容如下:
# 使用官方Python运行时 - 作为当前的镜像 FROM python:2.7-slim# 设置工作目录 /appWORKDIR /app# 拷贝当前目录内容到容器目录/appADD . /app# 安装需要的安装包从requirements.txt获取RUN pip install -r requirements.txt# 在容器(Container)外 , 使用80端口作为外界访问 EXPOSE 80# 定义环境变量 ENV NAME World# 当容器(Container)启动时运行app.pyCMD ["python", "app.py"]
1.2 .txt文件是依赖的库和引用 , 其中flask是的一个web框架 , 内容如下:
FlaskRedis
1.3 app.py文件是flask配置一个网站的最基本代码 , 内容如下:
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)

在命令行()下 , 运行ls你会看到如下三个文件
$ lsDockerfileapp.pyrequirements.txt
1.4 生成镜像
运行以下命令 , 创建一个镜像( image) , 并且加一个 -t 参数用于设置一个友好的命名
docker build -t friendlyhello .
那你上面创建的镜像在哪里了?答案是:在你的电脑的本地的 image 里 , 通过以下命令可以查看
$ docker imagesREPOSITORYTAGIMAGE IDCREATEDfriendlyhellolatest7554c6a24c1fAbout an minute ago
1.5 运行应用
运行你的应用 , 映射你电脑机器的4000端口到容器()的80端口 , 使用参数 -p
【Docker教程2 - 容器的使用和Docker的登录】docker run -p 4000:80 friendlyhello
然后在你的浏览器上就可以运行 :4000 的网站 , 效果如下图显示:

Docker教程2 - 容器的使用和Docker的登录

文章插图
当然 , 你也可以使用 curl 来访问了 , 获取的是页面源码
$ curl http://localhost:4000Hello World!Hostname: 8fc990912a14
Visits: cannot connect to Redis, counter disabled

我们还有更好的方式 , 在后台进程中运行容器() , 只需要添加一个 -d 参数 , d表示
docker run -d -p 4000:80 friendlyhello
在后进程中运行容器会产生一个很长的 ID(容器ID) , 但是通过以下命令时 , 只显示缩写版的 ID , 
通过命令行查看 , 
$ docker psCONTAINER IDIMAGECOMMANDCREATED1fa4ab2cf395friendlyhello"python app.py"28 seconds ago
1.6 停止容器
Ok , 相当到这里 , 大家明白了 , 使用是超级简单 , 没有复杂的配置 , 你就可以创建一个(容器) , 而且运行的很好 ,