From dd24811386062befcc966bad1a4bedccc1bac196 Mon Sep 17 00:00:00 2001 From: copuzzle Date: Tue, 30 Dec 2014 14:46:50 +0800 Subject: [PATCH 1/8] add fig doc part --- fig/README.md | 0 fig/home.md | 0 fig/install.md | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 fig/README.md create mode 100644 fig/home.md create mode 100644 fig/install.md diff --git a/fig/README.md b/fig/README.md new file mode 100644 index 0000000..e69de29 diff --git a/fig/home.md b/fig/home.md new file mode 100644 index 0000000..e69de29 diff --git a/fig/install.md b/fig/install.md new file mode 100644 index 0000000..e69de29 From c0dbca7a930fcf442b3e5de0eb6b18cc8bade793 Mon Sep 17 00:00:00 2001 From: copuzzle Date: Tue, 30 Dec 2014 23:44:09 +0800 Subject: [PATCH 2/8] finish home page translate --- _images/fig-example-large.gif | Bin 0 -> 32668 bytes fig/home.md | 140 ++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 _images/fig-example-large.gif diff --git a/_images/fig-example-large.gif b/_images/fig-example-large.gif new file mode 100644 index 0000000000000000000000000000000000000000..27a82a4446135d48bd73e947bf96ec37ba067b36 GIT binary patch literal 32668 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 literal 0 HcmV?d00001 diff --git a/fig/home.md b/fig/home.md index e69de29..421f211 100644 --- a/fig/home.md +++ b/fig/home.md @@ -0,0 +1,140 @@ +##快速搭建基于 Docker 的隔离开发环境 + +使用 `Dockerfile` 文件指定你的应用环境,让它能在任意地方复制使用: + +``` +FROM python:2.7 +ADD . /code +WORKDIR /code +RUN pip install -r requirements.txt +``` + +在 `fig.yml` 文件中指定应用使用的不同服务,让它们能够在一个独立的环境中一起运行: + +``` +web: + build: . + command: python app.py + links: + - db + ports: + - "8000:8000" +db: + image: postgres +``` +(注意不需要再额外安装 Postgres 了!) + +接着执行命令 `fig up` ,然后 Fig 就会启动并运行你的应用了。 + +![Docker](../_imagess/fig-example-large.gif) + +Fig 可用的命令有: + +* 启动、停止,和重建服务 +* 查看服务的运行状态 +* 查看运行中的服务的输入日志 +* 在服务器运行一次性命令 + +##快速上手 +我们试着让一个基本的 Python web 应用运行在 Fig 上。这个实验假设你已经知道一些 Python 知识,如果你不熟悉,但清楚概念上的东西也是可以的。 + +首先,[安装 Docker 和 Fig](install.md) + +为你的项目创建一个目录 + +``` +$ mkdir figtest +$ cd figtest +``` +进入目录,创建 `app.py`,这是一个能够让 Redis 上的一个值自增的简单 web 应用,基于 Flask 框架。 + +``` +from flask import Flask +from redis import Redis +import os +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) +``` +在 `requirements.txt` 文件中指定应用的 Python 依赖包。 + +``` +flask +redis +``` +下一步我们要创建一个包含应用所有依赖的 Doker 镜像,这里将阐述怎么通过 `Dockerfile` 文件来创建。 + +``` +FROM python:2.7 +ADD . /code +WORKDIR /code +RUN pip install -r requirements.txt +``` +以上的内容首先告诉 Docker 在容器里面安装 Python ,代码的路径还有Python 依赖包。关于 Dockerfile 的更多信息可以查看 [镜像创建](../image/create.md#利用 Dockerfile 来创建镜像) 和 [Dockerfile 使用](../dockerfile/README.md) + +接着我们通过 `fig.yml` 文件指定一系列的服务: + +``` +web: + build: . + command: python app.py + ports: + - "5000:5000" + volumes: + - .:/code + links: + - redis +redis: + image: redis + ``` +它指定了两个服务: + +* web 服务,通过当前目录的 `Dockerfile` 创建。并且说明了在容器里面执行`python app.py ` 命令 ,转发在容器里开发的 5000 端口到本地主机的 5000 端口,连接 Redis 服务,并且挂载当前目录到容器里面,这样我们就可以不重建镜像也能直接使用代码。 +* redis 服务,我们使用公用镜像 [redis](https://registry.hub.docker.com/_/redis/)。 +现在如果执行 `fig up` 命令 ,它就会拉取 redis 镜像,启动所有的服务。 + +``` +$ fig up +Pulling image redis... +Building web... +Starting figtest_redis_1... +Starting figtest_web_1... +redis_1 | [8] 02 Jan 18:43:35.576 # Server started, Redis version 2.8.3 +web_1 | * Running on http://0.0.0.0:5000/ +``` +这个 web 应用已经开始在你的 docker 守护进程里面监听着 5000 端口了(如果你有使用 boot2docker ,执行 `boot2docker ip` ,就会看到它的地址)。 + +如果你想要在后台运行你的服务,可以在执行 `fig up` 命令的时候添加 `-d` 参数,并且使用 `fig ps` 查看有什么在运行。 + +``` +$ fig up -d +Starting figtest_redis_1... +Starting figtest_web_1... +$ fig ps + Name Command State Ports +------------------------------------------------------------------- +figtest_redis_1 /usr/local/bin/run Up +figtest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp +``` + +`fig run` 指令允许你 为你的服务执行一次性命令。例如:查看 web 服务可以获取到的环境变量: + +``` +$ fig run web env +``` +执行帮助命令 `fig --help` 查看其它可用的参数。 + +假设你使用了 `fig up -d` 启动 Fig,可以通过以下命令停止你的服务: + +``` +$ fig stop +``` +以上内容或或少得讲述了如何 Fig 。通过查看下面的引用章节可以了解到关于命令、配置和环境变量的更多细节。如果你任何想法或建议,[可以在 GitHub 上提出](https://github.com/docker/fig)。 + From 69d10ac09de60bc6eec78b94a32360e5e5aaf745 Mon Sep 17 00:00:00 2001 From: copuzzle Date: Tue, 30 Dec 2014 23:57:43 +0800 Subject: [PATCH 3/8] fix som problem --- fig/home.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/fig/home.md b/fig/home.md index 421f211..971569d 100644 --- a/fig/home.md +++ b/fig/home.md @@ -33,10 +33,10 @@ Fig 可用的命令有: * 启动、停止,和重建服务 * 查看服务的运行状态 * 查看运行中的服务的输入日志 -* 在服务器运行一次性命令 +* 对服务发送命令 ##快速上手 -我们试着让一个基本的 Python web 应用运行在 Fig 上。这个实验假设你已经知道一些 Python 知识,如果你不熟悉,但清楚概念上的东西也是可以的。 +我们试着让一个基本的 Python web 应用运行在 Fig 上。这个实验假设你已经知道一些 Python 知识,如果你不熟悉,但清楚概念上的东西也是没有问题的。 首先,[安装 Docker 和 Fig](install.md) @@ -69,7 +69,7 @@ if __name__ == "__main__": flask redis ``` -下一步我们要创建一个包含应用所有依赖的 Doker 镜像,这里将阐述怎么通过 `Dockerfile` 文件来创建。 +下一步我们要创建一个包含应用所有依赖的 Docker 镜像,这里将阐述怎么通过 `Dockerfile` 文件来创建。 ``` FROM python:2.7 @@ -94,10 +94,11 @@ web: redis: image: redis ``` -它指定了两个服务: +这里指定了两个服务: -* web 服务,通过当前目录的 `Dockerfile` 创建。并且说明了在容器里面执行`python app.py ` 命令 ,转发在容器里开发的 5000 端口到本地主机的 5000 端口,连接 Redis 服务,并且挂载当前目录到容器里面,这样我们就可以不重建镜像也能直接使用代码。 -* redis 服务,我们使用公用镜像 [redis](https://registry.hub.docker.com/_/redis/)。 +* web 服务,通过当前目录的 `Dockerfile` 创建。并且说明了在容器里面执行`python app.py ` 命令 ,转发在容器里开放的 5000 端口到本地主机的 5000 端口,连接 Redis 服务,并且挂载当前目录到容器里面,这样我们就可以不用重建镜像也能直接使用代码。 +* redis 服务,我们使用公用镜像 [redis](https://registry.hub.docker.com/_/redis/)。 +* 现在如果执行 `fig up` 命令 ,它就会拉取 redis 镜像,启动所有的服务。 ``` @@ -111,7 +112,7 @@ web_1 | * Running on http://0.0.0.0:5000/ ``` 这个 web 应用已经开始在你的 docker 守护进程里面监听着 5000 端口了(如果你有使用 boot2docker ,执行 `boot2docker ip` ,就会看到它的地址)。 -如果你想要在后台运行你的服务,可以在执行 `fig up` 命令的时候添加 `-d` 参数,并且使用 `fig ps` 查看有什么在运行。 +如果你想要在后台运行你的服务,可以在执行 `fig up` 命令的时候添加 `-d` 参数,然后使用 `fig ps` 查看有什么进程在运行。 ``` $ fig up -d @@ -124,7 +125,7 @@ figtest_redis_1 /usr/local/bin/run Up figtest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp ``` -`fig run` 指令允许你 为你的服务执行一次性命令。例如:查看 web 服务可以获取到的环境变量: +`fig run` 指令可以帮为你的服务发送命令。例如:查看 web 服务可以获取到的环境变量: ``` $ fig run web env @@ -136,5 +137,5 @@ $ fig run web env ``` $ fig stop ``` -以上内容或或少得讲述了如何 Fig 。通过查看下面的引用章节可以了解到关于命令、配置和环境变量的更多细节。如果你任何想法或建议,[可以在 GitHub 上提出](https://github.com/docker/fig)。 +以上内容或多或少得讲述了如何 Fig 。通过查看下面的引用章节可以了解到关于命令、配置和环境变量的更多细节。如果你任何想法或建议,[可以在 GitHub 上提出](https://github.com/docker/fig)。 From fbe187a74349e4bd1c187bb0282f9185760c3f68 Mon Sep 17 00:00:00 2001 From: copuzzle Date: Thu, 1 Jan 2015 12:16:46 +0800 Subject: [PATCH 4/8] fix image problem --- fig/home.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fig/home.md b/fig/home.md index 971569d..0e2b1f3 100644 --- a/fig/home.md +++ b/fig/home.md @@ -26,7 +26,7 @@ db: 接着执行命令 `fig up` ,然后 Fig 就会启动并运行你的应用了。 -![Docker](../_imagess/fig-example-large.gif) +![Docker](../_images/fig-example-large.gif) Fig 可用的命令有: From 36b6e29d598d1e40af509c3e8eba27c934d41892 Mon Sep 17 00:00:00 2001 From: copuzzle Date: Thu, 1 Jan 2015 21:21:33 +0800 Subject: [PATCH 5/8] add readme content fix warring tag css --- fig/README.md | 2 ++ fig/home.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fig/README.md b/fig/README.md index e69de29..2a47bcf 100644 --- a/fig/README.md +++ b/fig/README.md @@ -0,0 +1,2 @@ +#Fig +在你的应用里面添加一个 `fig.yml` 文件,并指定一些简单的内容,执行 `fig up` 它就能帮你快速建立起一个容器。 \ No newline at end of file diff --git a/fig/home.md b/fig/home.md index 0e2b1f3..07abbf8 100644 --- a/fig/home.md +++ b/fig/home.md @@ -22,7 +22,7 @@ web: db: image: postgres ``` -(注意不需要再额外安装 Postgres 了!) +*注意不需要再额外安装 Postgres 了!* 接着执行命令 `fig up` ,然后 Fig 就会启动并运行你的应用了。 From 544ee1de65dedf74323c4821ea91f13eacccc47a Mon Sep 17 00:00:00 2001 From: copuzzle Date: Thu, 1 Jan 2015 22:12:28 +0800 Subject: [PATCH 6/8] finish install section --- fig/install.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/fig/install.md b/fig/install.md index e69de29..0c7188e 100644 --- a/fig/install.md +++ b/fig/install.md @@ -0,0 +1,28 @@ +##安装 Fig + +首先,安装 1.3 或者更新的 Docker 版本。 + +如果你的工作环境是 OS X ,可以通过查看 [Mac 安装指南(英文)](https://docs.docker.com/installation/mac/) ,完成安装 Docker 和 boot2docker 。一旦 boot2docker 运行后,执行以下指令设置一个环境变量,接着 Fig 就可以和它交互了。 + +``` +$(boot2docker shellinit) +``` +**如果想避免重启后重新设置,可以把上面的命令加到你的 ` ~/.bashrc` 文件里。* + +关于 `Ubuntu` 还有 `其它的平台` 的安装,可以参照 [Ubuntu 安装指南(中文)](../install/ubuntu.md) 以及 [官方安装手册(英文)](https://docs.docker.com/installation/)。 + + +下一步,安装 Fig : + +``` +curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`uname -m` > /usr/local/bin/fig; chmod +x /usr/local/bin/fig +``` +**如果你的 Docker 是管理员身份安装,以上命令可能也需要相同的身分。* + +目前的发行版本只有 OSX 和 64 位的 Linux 系统。但因为 Fig 是用 Python 语言写的,所以对于其它的平台上的用户,可以通过 Python 安装包来完成安装(支持的系统同样适用)。 + +``` +$ sudo pip install -U fig +``` +到这里就已经完成了。 使用 `fig --version` 确认安装正常,还有版本号。 + From d2bbf9e4ca0db4389874b10232c588ffb50e6eba Mon Sep 17 00:00:00 2001 From: copuzzle Date: Thu, 1 Jan 2015 22:17:39 +0800 Subject: [PATCH 7/8] fix error char --- fig/install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fig/install.md b/fig/install.md index 0c7188e..d977e02 100644 --- a/fig/install.md +++ b/fig/install.md @@ -17,9 +17,9 @@ $(boot2docker shellinit) ``` curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`uname -m` > /usr/local/bin/fig; chmod +x /usr/local/bin/fig ``` -**如果你的 Docker 是管理员身份安装,以上命令可能也需要相同的身分。* +**如果你的 Docker 是管理员身份安装,以上命令可能也需要相同的身份。* -目前的发行版本只有 OSX 和 64 位的 Linux 系统。但因为 Fig 是用 Python 语言写的,所以对于其它的平台上的用户,可以通过 Python 安装包来完成安装(支持的系统同样适用)。 +目前 Fig 的发行版本只支持 OSX 和 64 位的 Linux 系统。但因为它是用 Python 语言写的,所以对于其它平台上的用户,可以通过 Python 安装包来完成安装(支持的系统同样适用)。 ``` $ sudo pip install -U fig From f80eed0e1812c730250d4067f7e2932899cd50b0 Mon Sep 17 00:00:00 2001 From: copuzzle Date: Thu, 1 Jan 2015 22:21:30 +0800 Subject: [PATCH 8/8] fix char --- fig/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fig/install.md b/fig/install.md index d977e02..9a81d3a 100644 --- a/fig/install.md +++ b/fig/install.md @@ -24,5 +24,5 @@ curl -L https://github.com/docker/fig/releases/download/1.0.1/fig-`uname -s`-`un ``` $ sudo pip install -U fig ``` -到这里就已经完成了。 使用 `fig --version` 确认安装正常,还有版本号。 +到这里就已经完成了。 执行 `fig --version` ,确认能够正常运行。