Skip to content

Commit 85189e8

Browse files
authored
Merge pull request #1606 from gangliao/docker_docs
Change the order of docker doc session
2 parents 51c4585 + 2e0f462 commit 85189e8

File tree

2 files changed

+170
-174
lines changed

2 files changed

+170
-174
lines changed

doc/getstarted/build_and_install/docker_install_cn.rst

Lines changed: 76 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -4,138 +4,137 @@ PaddlePaddle的Docker容器使用方式
44
PaddlePaddle目前唯一官方支持的运行的方式是Docker容器。因为Docker能在所有主要操作系统(包括Linux,Mac OS X和Windows)上运行。 请注意,您需要更改 `Dockers设置 <https://github.com/PaddlePaddle/Paddle/issues/627>`_ 才能充分利用Mac OS X和Windows上的硬件资源。
55

66

7-
通过Docker容器开发PaddlePaddle
7+
纯CPU和GPU的docker镜像使用说明
88
------------------------------
99

10-
开发人员可以在Docker中开发PaddlePaddle。这样开发人员可以以一致的方式在不同的平台上工作 - Linux,Mac OS X和Windows。
10+
对于每一个PaddlePaddle版本,我们都会发布两个Docker镜像:纯CPU的和GPU的。
11+
我们通过设置 `dockerhub.com <https://hub.docker.com/r/paddledev/paddle/>`_ 自动生成最新的docker镜像:
12+
`paddledev/paddle:0.10.0rc1-cpu` 和 `paddledev/paddle:0.10.0rc1-gpu`。
1113

12-
1. 将开发环境构建为Docker镜像
13-
14-
.. code-block:: bash
14+
以交互容器方式运行纯CPU的镜像:
1515

16-
git clone --recursive https://github.com/PaddlePaddle/Paddle
17-
cd Paddle
18-
docker build -t paddle:dev -f paddle/scripts/docker/Dockerfile .
16+
.. code-block:: bash
1917
18+
docker run -it --rm paddledev/paddle:0.10.0rc1-cpu /bin/bash
2019
21-
请注意,默认情况下,:code:`docker build` 不会将源码导入到镜像中并编译它。如果我们想这样做,需要设置一个参数
20+
或者,可以以后台进程方式运行容器
2221

23-
.. code-block:: bash
22+
.. code-block:: bash
2423
25-
docker build -t paddle:dev -f paddle/scripts/docker/Dockerfile --build-arg BUILD_AND_INSTALL=ON .
24+
docker run -d -p 2202:22 -p 8888:8888 paddledev/paddle:0.10.0rc1-cpu
2625
26+
然后用密码 :code:`root` SSH进入容器:
2727

28-
2. 运行开发环境
28+
.. code-block:: bash
2929
30-
当我们编译好了 :code:`paddle:dev`, 我们可以在docker容器里做开发,源代码可以通过挂载本地文件来被载入Docker的开发环境里面:
31-
32-
.. code-block:: bash
30+
ssh -p 2202 root@localhost
3331
34-
docker run -d -p 2202:22 -v $PWD:/paddle paddle:dev
32+
SSH方式的一个优点是我们可以从多个终端进入容器。比如,一个终端运行vi,另一个终端运行Python。另一个好处是我们可以把PaddlePaddle容器运行在远程服务器上,并在笔记本上通过SSH与其连接。
3533

36-
以上代码会启动一个带有PaddlePaddle开发环境的docker容器,源代码会被挂载到 :code:`/paddle` 。
3734

38-
请注意, :code:`paddle:dev` 的默认入口是 :code:`sshd` 。以上的 :code:`docker run` 命令其实会启动一个在2202端口监听的SSHD服务器。这样,我们就能SSH进入我们的开发容器了:
39-
40-
.. code-block:: bash
35+
以上方法在GPU镜像里也能用-只是请不要忘记按装CUDA驱动,以及告诉Docker:
4136

42-
ssh root@localhost -p 2202
37+
.. code-block:: bash
4338
44-
3. 在Docker开发环境中编译与安装PaddlPaddle代码
39+
export CUDA_SO="$(\ls /usr/lib64/libcuda* | xargs -I{} echo '-v {}:{}') $(\ls /usr/lib64/libnvidia* | xargs -I{} echo '-v {}:{}')"
40+
export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')
41+
docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:0.10.0rc1-gpu
4542
46-
当在容器里面的时候,可以用脚本 :code:`paddle/scripts/docker/build.sh` 来编译、安装与测试PaddlePaddle:
47-
48-
.. code-block:: bash
49-
50-
/paddle/paddle/scripts/docker/build.sh
5143
52-
以上指令会在 :code:`/paddle/build` 中编译PaddlePaddle。通过以下指令可以运行单元测试:
53-
54-
.. code-block:: bash
44+
运行PaddlePaddle书籍
45+
---------------------
5546

56-
cd /paddle/build
57-
ctest
47+
Jupyter Notebook是一个开源的web程序,大家可以通过它制作和分享带有代码、公式、图表、文字的交互式文档。用户可以通过网页浏览文档。
5848

59-
4. 在Docker容器中运行PaddlePaddle书籍
49+
PaddlePaddle书籍是为用户和开发者制作的一个交互式的Jupyter Nodebook。
50+
如果您想要更深入了解deep learning,PaddlePaddle书籍一定是您最好的选择。
6051

61-
Jupyter Notebook是一个开源的web程序,大家可以通过它制作和分享带有代码、公式、图表、文字的交互式文档。用户可以通过网页浏览文档。
52+
当您进入容器内之后,只用运行以下命令:
6253

63-
PaddlePaddle书籍是为用户和开发者制作的一个交互式的Jupyter Nodebook。
64-
如果您想要更深入了解deep learning,PaddlePaddle书籍一定是您最好的选择。
65-
66-
当您进入容器内之后,只用运行以下命令:
54+
.. code-block:: bash
55+
56+
jupyter notebook
6757
68-
.. code-block:: bash
69-
70-
jupyter notebook
58+
然后在浏览器中输入以下网址:
59+
60+
.. code-block:: text
7161
72-
然后在浏览器中输入以下网址:
73-
74-
.. code-block:: text
62+
http://localhost:8888/
7563
76-
http://localhost:8888/
64+
就这么简单,享受您的旅程!
7765

78-
就这么简单,享受您的旅程!
7966

80-
纯CPU和GPU的docker镜像
81-
----------------------
67+
非AVX镜像
68+
---------
8269

83-
对于每一个PaddlePaddle版本,我们都会发布两个Docker镜像:纯CPU的和GPU的。我们通过设置 `dockerhub.com <https://hub.docker.com/r/paddledev/paddle/>`_ 自动运行以下两个命令
70+
纯CPU镜像以及GPU镜像都会用到AVX指令集,但是2008年之前生产的旧电脑不支持AVX。以下指令能检查Linux电脑是否支持AVX
8471

8572
.. code-block:: bash
8673
87-
docker build -t paddle:cpu -f paddle/scripts/docker/Dockerfile --build-arg BUILD_AND_INSTALL=ON .
88-
docker build -t paddle:gpu -f paddle/scripts/docker/Dockerfile.gpu --build-arg BUILD_AND_INSTALL=ON .
74+
if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi
8975
90-
以交互容器方式运行纯CPU的镜像
76+
如果输出是No,我们就需要手动编译一个非AVX版本的镜像
9177

9278
.. code-block:: bash
9379
94-
docker run -it --rm paddledev/paddle:0.10.0rc1-cpu /bin/bash
80+
cd ~
81+
git clone https://github.com/PaddlePaddle/Paddle.git
82+
cd Paddle
83+
docker build --build-arg WITH_AVX=OFF -t paddle:cpu-noavx -f paddle/scripts/docker/Dockerfile .
84+
docker build --build-arg WITH_AVX=OFF -t paddle:gpu-noavx -f paddle/scripts/docker/Dockerfile.gpu .
9585
96-
或者,可以以后台进程方式运行容器:
9786
98-
.. code-block:: bash
87+
通过Docker容器开发PaddlePaddle
88+
------------------------------
9989

100-
docker run -d -p 2202:22 paddledev/paddle:0.10.0rc1-cpu
90+
开发人员可以在Docker中开发PaddlePaddle。这样开发人员可以以一致的方式在不同的平台上工作 - Linux,Mac OS X和Windows。
10191

102-
然后用密码 :code:`root` SSH进入容器:
92+
1. 将开发环境构建为Docker镜像
93+
94+
.. code-block:: bash
10395
104-
.. code-block:: bash
96+
git clone --recursive https://github.com/PaddlePaddle/Paddle
97+
cd Paddle
98+
docker build -t paddle:dev -f paddle/scripts/docker/Dockerfile .
10599
106-
ssh -p 2202 root@localhost
107100
108-
SSH方式的一个优点是我们可以从多个终端进入容器。比如,一个终端运行vi,另一个终端运行Python。另一个好处是我们可以把PaddlePaddle容器运行在远程服务器上,并在笔记本上通过SSH与其连接。
101+
请注意,默认情况下,:code:`docker build` 不会将源码导入到镜像中并编译它。如果我们想这样做,需要设置一个参数:
109102

103+
.. code-block:: bash
110104
111-
以上方法在GPU镜像里也能用-只是请不要忘记按装CUDA驱动,以及告诉Docker:
105+
docker build -t paddle:dev -f paddle/scripts/docker/Dockerfile --build-arg BUILD_AND_INSTALL=ON .
112106
113-
.. code-block:: bash
114107
115-
export CUDA_SO="$(\ls /usr/lib64/libcuda* | xargs -I{} echo '-v {}:{}') $(\ls /usr/lib64/libnvidia* | xargs -I{} echo '-v {}:{}')"
116-
export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')
117-
docker run ${CUDA_SO} ${DEVICES} -it paddledev/paddle:0.10.0rc1-gpu
108+
2. 运行开发环境
118109

110+
当我们编译好了 :code:`paddle:dev`, 我们可以在docker容器里做开发,源代码可以通过挂载本地文件来被载入Docker的开发环境里面:
111+
112+
.. code-block:: bash
119113
120-
非AVX镜像
121-
---------
114+
docker run -d -p 2202:22 -v $PWD:/paddle paddle:dev
122115
123-
纯CPU镜像以及GPU镜像都会用到AVX指令集,但是2008年之前生产的旧电脑不支持AVX。以下指令能检查Linux电脑是否支持AVX:
116+
以上代码会启动一个带有PaddlePaddle开发环境的docker容器,源代码会被挂载到 :code:`/paddle` 。
124117

118+
请注意, :code:`paddle:dev` 的默认入口是 :code:`sshd` 。以上的 :code:`docker run` 命令其实会启动一个在2202端口监听的SSHD服务器。这样,我们就能SSH进入我们的开发容器了:
119+
120+
.. code-block:: bash
125121
126-
.. code-block:: bash
122+
ssh root@localhost -p 2202
127123
128-
if cat /proc/cpuinfo | grep -i avx; then echo Yes; else echo No; fi
124+
3. 在Docker开发环境中编译与安装PaddlPaddle代码
129125

130-
如果输出是No,我们就需要手动编译一个非AVX版本的镜像:
126+
当在容器里面的时候,可以用脚本 :code:`paddle/scripts/docker/build.sh` 来编译、安装与测试PaddlePaddle:
127+
128+
.. code-block:: bash
129+
130+
/paddle/paddle/scripts/docker/build.sh
131131
132-
.. code-block:: bash
132+
以上指令会在 :code:`/paddle/build` 中编译PaddlePaddle。通过以下指令可以运行单元测试:
133+
134+
.. code-block:: bash
133135
134-
cd ~
135-
git clone https://github.com/PaddlePaddle/Paddle.git
136-
cd Paddle
137-
docker build --build-arg WITH_AVX=OFF -t paddle:cpu-noavx -f paddle/scripts/docker/Dockerfile .
138-
docker build --build-arg WITH_AVX=OFF -t paddle:gpu-noavx -f paddle/scripts/docker/Dockerfile.gpu .
136+
cd /paddle/build
137+
ctest
139138
140139
141140
文档

0 commit comments

Comments
 (0)