现在Docker是地球上最炙手可热的项目之一,就意味着人民实际上不仅仅是因为这个才喜欢它。
话虽如此,我非常喜欢使用容器,服务发现以及所有被创造出的新趣的点子和领域来切换工作作为范例。
这个文章中我会简要介绍使用python中的docker-py模块来操作Docker 容器,这里会使用我喜爱的编程工具IPython。
安装docker-py
首先需要docker-py。注意这里的案例中我将会使用Ubuntu Trusty 14.04版本。
$ pip install docker-py
IPyhton
我真的很喜欢用IPython来探索Python。 它像是一共高级的python Shell,但是可以做的更多。
$ sudo apt-get install ipythonSNIP!$ ipythonPython 2.7.6 (default, Mar 22 2014, 22:59:56)Type "copyright", "credits" or "license" for more information.IPython 1.2.1 -- An enhanced Interactive Python.? -> Introduction and overview of IPython's features.%quickref -> Quick reference.help -> Python's own help system.object? -> Details about 'object', use 'object??' for extra details.In [1]:
安装 docker
如果没有安装Docker,那首先安装docker
$ sudo apt-get install docker.io
然后把 docker.io 起个别名 docker
$ alias docker='docker.io'$ docker versionClient version: 0.9.1Go version (client): go1.2.1Git commit (client): 3600720Server version: 0.9.1Git commit (server): 3600720Go version (server): go1.2.1Last stable version: 0.11.1, please update docker
Docker现在应该有个socket开启,我们可以用来连接。
$ ls /var/run/docker.sock/var/run/docker.sock
Pull 镜像
让我们下载 busybox镜像
$ docker pull busyboxPulling repository busybox71e18d715071: Download complete98b9fdab1cb6: Download complete1277aa3f93b3: Download complete6e0a2595b580: Download complete511136ea3c5a: Download completeb6c0d171b362: Download complete8464f9ac64e8: Download complete9798716626f6: Download completefc1343e2fca0: Download completef3c823ac7aa6: Download complete
现在我们准备使用 docker-py 了。
使用 docker-py
现在我们有了docker-py , IPython, Docker 和 busybox 镜像,我们就能建立一些容器。
如果你不是很熟悉IPython,可以参照这个教程学习(http://ipython.org/ipython-doc/stable/interactive/tutorial.html),
IPython是十分强大的。
首先启动一个IPython ,导入docker模块。
$ ipythonPython 2.7.6 (default, Mar 22 2014, 22:59:56)Type "copyright", "credits" or "license" for more information.IPython 1.2.1 -- An enhanced Interactive Python.? -> Introduction and overview of IPython's features.%quickref -> Quick reference.help -> Python's own help system.object? -> Details about 'object', use 'object??' for extra details.In [1]: import docker
新闻热点
疑难解答