前言
最近乘着项目不忙想赶一波时髦学习一下Python3
。由于正好学习了Docker
,并深深迷上了Docker
,所以必须趁热打铁的用它来创建我们的Python3
的开发测试环境。Python3
的中文教程是参考了廖雪峰的官方网站
,教程非常详细,一步步照着学习就行了,我在自己的文章中就尽量不重复了。我会在自己后续的文章中会结合一些实例来学习Python3
。
环境介绍
系统:Centos 7.4
编辑器:Vim
工具:Docker CE v17.09.0 & Docker Compose v1.17.0
Python版本:Docker官方Python3镜像
关于Docker CE
和Docker Compose
的部署,可以参考我另外一篇博客Centos7.4下用Docker-Compose部署WordPress中相关部分
安装Python3容器
创建文件夹和Docker Compose脚本
先创建以下用作测试的文件夹:
$ cd /usr/ && sudo mkdir python-test && cd python-test/
创建名为docker-compose.yml
的配置文件:
$ sudo vim docker-compose.yml
以下是docker-compose.yml
中的内容:
version: '3'
services:
python3:
image: python:3
container_name: python3
volumes:
- /usr/python-test/my-test-scripts:/usr/src/myapp
working_dir: /usr/src/myapp
command: ["python3","test.py"]
创建用来存放Python
脚本的文件夹/usr/python-test/my-test-scripts
:
$ sudo mkdir -p /usr/python-test/my-test-scripts
测试是否部署正确
在/usr/python-test/my-test-scripts
目录下创建名为test.py
的文件(必须和docker-compose.yml
配置中command
行中的参数保持一致):
$ sudo vim /usr/python-test/my-test-scripts/test.py
在文件中输入如下Python
代码:
print('hello world')
启动容器:
$ sudo docker-compose up
如果看到控制台输出了如下内容,则表示部署已经成功了:
Starting python3 ...
Starting python3 ... done
Attaching to python3
python3 | hello world
python3 exited with code 0
解读docker-compose.yml配置
如果是第一次接触Docker
和Docker Compose
,可能对docker-compose.yml
中的配置内容比较茫然,我来逐行解释一下。
version: '3'
这行表示Docker Compose
脚本的版本号,这个需要和所安装的Docker
版本有对应关系,详见
https://docs.docker.com/compose/compose-file/
services:
python3:
这两行表示当前这个脚本中提供的所有服务列表,因为我们这里只有一个服务内容,即:python3
image: python:3
这行表明我们需要用的Docker
镜像,我们将获取name=python
且tag=3
的Docker
镜像(Docker
会优先从本地镜像中寻找镜像,如果找不到,这从远程Registry
下载镜像,这部分知识详见Docker
官方的说明)。
container_name: python3
这行很简单,就是给即将要启动的Docker
容器起个名字。
volumes:
- /usr/python-test/my-test-scripts:/usr/src/myapp
这行将宿主机中的/usr/python-test/my-test-scripts
文件夹挂在到容器中的/usr/src/myapp
文件夹,这样做就可以不需要进入容器(不进入容器操作是必须遵守的规范),将本地文件夹/usr/python-test/my-test-scripts
中的内容即可视作是容器文件夹/usr/src/myapp
中的内容。
working_dir: /usr/src/myapp
这行表示将容器中执行目录切换到/usr/src/myapp
。
command: ["python3","test.py"]
最后一行,即为需要执行的命令。
其实最后两行相当于在linux
命令行中(当然是容器中的)执行:
$ cd /usr/src/myapp && sudo python3 test.py
由此看出,该容器由于是测试用容器,容器每次被启动,都将在容器中执行python3 /usr/src/myapp/test.py
命令,所以在宿主机的/usr/python-test/my-test-scripts
文件夹中我们需要创建一个名为test.py
的文件(上面已经创建过了),如果需要执行不同的测试代码,则直接修改test.py
中的内容之后,重新执行容器即可。
目前为止,已经非常方便快捷的部署好了我们所需的Python3
的测试环境(我大概前后花了10分钟不到,而且由于使用了Docker
技术,根本不用担心环境对现有系统的影响和冲突等问题),真的是非常便捷可靠!废话不多说,现在开始正式进入Python
的世界吧!