Docker 官方文档翻译

Docker 官方文档翻译

docker-compose 概述

docker
compose 是利用docker来运行多个容器的工具。利用compose 在一个文件中定义多个容器,然后利用一个单独的命令,可以执行你所想做的任何事情。
compose 能较好的作为开发环境的假设,服务器脚手架以及Ci方面的应用。我们不推荐使用在生产环境中。
使用compose 需要一下三个步骤:
1.在Dockerfile中定义你的应用环境,一边在任何地方重建环境
2.在docker-compose.yml中定义你的多种服务,以组成应用环境,并在单独的容器中一起运行。
3.最后执行docker-compose up 启动和运行你的整个应用
一个docker-compose.yml如下

web:  build: .  ports:   - "5000:5000"  volumes:   - .:/code  links:   - redisredis:  image: redis

compose 有如下命令来管理应用的整个生命周期

  • Start, stop and rebuild 服务
  • 查看镜像的运行状态
  • 查看服务日志
  • 运行一次性命令

compose 文档

docker-compose快速上手

利用一个简单python web 应用来,大体上了解下compose 。你需要了解一点点,或者完全不熟悉python也是可以的。

安装

首先,安装docker 和 compose。
接下来,建立项目所在目录。

$ mkdir composetest$ cd composetest

进入目录,创建app.py,一个简单的web应用利用Flask framework,来记录访问的次数在redis缓存中。不要担心你没有安装redis,你只需要关心在你的docker 文件中是否定义了redis服务即可。
app.py的脚本代码如下:

from flask import Flaskfrom 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)

接下来定义phthon 依赖在requirements.txt文件中:

flaskredis

创建docker镜像

现在我们来创建一个应用依赖的镜像容器。你可以制定如何建立一个镜像利用Dockerfile:

FROM python:2.7ADD . /codeWORKDIR /codeRUN pip install -r requirements.txtCMD python app.py

这个脚本告诉docker 我们要执行如下操作:

  • 从官方库中拉去一个python2.7的镜像
  • 在“.”当前目录中的 添加一个code目录
  • 设定工作目录为code
  • 安装python依赖
  • 设定一条容器启动时候的默认命令
    获取更多Dockerfile 的书写方式请访问Docker用户指引Dockerfile参照
    你可以运行如下命令来测试创建
docker build -t web .

定义服务

接下来利用docker-compose.yml 来定义一组服务

web:  build: .  ports:   - "5000:5000"  volumes:   - .:/code  links:   - redisredis:  image: redis

这里定义了两个服务

web

  • 在当前目录查找Dockerfile并执行
  • 将主机的5000 端口 转发给镜像的5000 端口
  • web 服务依赖redis 服务
  • 将code目录挂载在镜像中

redis

  • 从Docker Hub上拉去redis镜像

建立和运行compose

现在我只需要执行 docker-compose up 就可以从官方拉去我们设定好的镜像了。
如果你是用了 Docker Machine 你可以使用 docker-machine ip MACHINE_VM 就能获取docker的ip。
如果你没有使用Boot2docker,你可以使用 http://0.0.0.0:5000 来访问你的web 应用。
你会得到如下返回
Hello World! I have been seen 1 times.
刷新会增加次数
如果你想让docker 后台运行,请家参数 -d
可以利用docker-compose ps查看运行中的镜像
docker-compose run 允许你执行一条命令在你的镜像中,比如你可以执行如下命令

$ docker-compose run web env

更多请参考 docker-compose –help
当你想停止docker 镜像是可以执行

$ docker-compose stop

至此你已经看到了compose的整个工作流程
更多内容敬请期待

时间: 2024-10-30 05:39:47

Docker 官方文档翻译的相关文章

Ubuntu安装Docker(官方文档翻译)

翻译自Docker官方文档 https://docs.docker.com/engine/installation/linux/ubuntulinux/ 之前因为看不懂官方文档,卡在某个步骤无法完成安装.翻译一下安装部分,给自己也希望能给一些同学做参考. 我的英语水平很菜,不足之处请各位斧正. 国内从docker官方下载文件会很慢,耐心等待,有时还会连不上,重试可能会成功. Ubuntu Docker 在支持这些Ubuntu操作系统: · Ubuntu Xenial 16.04 (LTS) · 

关于Docker官方CentOS镜像无法启动mysqld的总结

很多童鞋反映,在Docker官方CentOS镜像中安装了Mysql server后,无法正常启动. 无法正常启动表现为两种情况: 1> 初始完数据库后,mysqld启动报错 2> systemctl start mysqld或者service mysqld start报错 首先重现一下现场. 第一种情况 一.启动CentOS镜像,安装Mysql Server 注意,Docker官方CentOS镜像latest版本是7.1.CentOS 7 yum源中默认没有Mysql Server的. 关于如

Swift 集合类型(Collection Type) 之 字典(dictionary)(官方文档翻译及总结)

Swift语言提供经典的数组和字典两种集合类型来存储集合数据.数组和字典中存储的数据值类型必须明确.这意味着我们不能把不正确的数据类型插入其中.Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚.也让我们在开发中可以早早的找到任何的类型不匹配错误.如果你用变量(var)创建的集合,这些集合就是可变的(增删改).如果用常理创建的,这些集合是不能被操作的. 注意: 如果集合的元素是不变的,那就将集合声明为常量.这样Swift编译器能对你创建的集合做性能优化. 1. 数组(arr

NServiceBus官方文档翻译(一)NServiceBus 概况

NServiceBus 概况 NServiceBus 被设计用来组合面向业务的服务,它并不是用来替代诸如 WCF 一类的RPC技术. NServiceBus 不只包含通信模块,像其他成熟的SOA和DDD项目一样,它使用了多种组合的方法和技术. 本篇文章探讨了 NServiceBus 和微软相关产品的相似点和不同点. 相比 BizTalk 更接近 WCF 当人们听到“服务总线”这个名词时,一般会描绘出如上图所示的画面,像 BizTalk 一样所有的通信都经过一个中央结点.这实际上描述的是一个代理的

Python3.2官方文档翻译--标准库概览(一)

7.1 操作系统接口 Os模块提供主要许多与操作系统交互的函数. >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python31' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # R

Alljoyn瘦客户端库介绍(官方文档翻译)

Alljoyn瘦客户端库介绍(1) 1.简介 本文档对AllJoynTM瘦客户端的核心库文件(AJTCL)进行了详尽的介绍.本文档介绍了系统整体架构,AllJoyn框架结构,并着重于介绍如何将嵌入式设备加入AllJoyn系统整体架构中.1.1目的 本文档介绍了如何使一个受限于功耗.计算能力和内存的设备(嵌入式设备)加入AllJoyn分布式系统.具体而言,本文档包括了对AllJoyn面向嵌入式系统的方面的介绍,并着重描述了基于AllJoyn的系统的各个组件是如何与嵌入式设备协作以构建一个基于接近式

Oracle 12c 12.1.0.1.0管理控制文件官方文档翻译说明

Link: http://download.csdn.net/detail/rlhua/7718571 官方Link: http://docs.oracle.com/database/121/ADMIN/control.htm#ADMIN006 版本: [email protected]>select * from v$version; BANNER                                                                          

官方文档翻译:Innodb的锁

InnoDB Record, Gap, and Next-Key Locks 考虑到翻译准确性,对于某些特殊名称不做翻译,以免误导: InnoDB has several types of record-level locks including record locks, gap locks, and next-key locks. innodb 有几种行锁类型,包括,record locks(记录锁),gap locks(间隙锁),and next-key locks(组合). Record

Aircrack-ng官方文档翻译[中英对照]---Airmon-ng

Aircrack-ng官方文档翻译---Airmon-ng Description[简介] This script can be used to enable monitor mode on wireless interfaces. It may also be used to go back from monitor mode to managed mode. Entering the airmon-ng command without parameters will show the int