Docker远程python API操作容器一例[原创]
Docker-py作为官方推出的客户端API,功能可以满足我们大部分操作需求,API涉及镜像(images)及容器(CONTAINER)的功能操作,利用docker-py可以轻松开发出Docker的管理平台,以便维护大规模的Docker集群,本文介绍如何通过DockerFile创建一个WEB服务的镜像,再通过远程API对容器进行管理。
一、环境准备
1、环境说明
192.168.1.20 #Docker python API主机
192.168.1.22 #Docker服务主机
2、Docker环境部署(略)
3、修改自启动服务文件,支持远程TCP接口与本地SOCK连接;
# vi /etc/init.d/docker
#service docker restart
二、创建镜像
1、获取最新的centos镜像
# docker pull centos:latest
2、编写Dockerfile(支持apache+ssh服务)
# mkdir /home/Dockerfile/webserver
# cd /home/Dockerfile/webserver
# vi Dockerfile
通过supervisord来维护Docker容器中服务进程,编写supervisord.conf
# vi supervisord.conf
创建镜像,运行:
# docker build -t yorko/webserver:v1 .
注:最后有一个“.”,别遗漏。
镜像生成完毕后运行docker images查看,见下图:

三、编写操作API
登录192.168.1.20服务器
# mkdir /home/test/docker-py
# cd /home/test/docker-py
1、安装docker-py
# wget https://github.com/docker/docker-py/archive/master.zip
# unzip master
# cd docker-py-master/
# python setup.py install
如正常导入模块(import docker)说明安装成功。
2、创建容器docker_create.py
3、运行容器docker_start.py
4、运行
# python docker_create.py
# python docker_start.py
更多API参考https://github.com/docker/docker-py
5、在Docker主机观察结果,见下图:

三、校验服务
1、校验SSH服务

2、校验WEB服务

3、检查数据卷
一、环境准备
1、环境说明
192.168.1.20 #Docker python API主机
192.168.1.22 #Docker服务主机
2、Docker环境部署(略)
3、修改自启动服务文件,支持远程TCP接口与本地SOCK连接;
# vi /etc/init.d/docker
#service docker restart
二、创建镜像
1、获取最新的centos镜像
# docker pull centos:latest
2、编写Dockerfile(支持apache+ssh服务)
# mkdir /home/Dockerfile/webserver
# cd /home/Dockerfile/webserver
# vi Dockerfile
通过supervisord来维护Docker容器中服务进程,编写supervisord.conf
# vi supervisord.conf
创建镜像,运行:
# docker build -t yorko/webserver:v1 .
注:最后有一个“.”,别遗漏。
镜像生成完毕后运行docker images查看,见下图:
三、编写操作API
登录192.168.1.20服务器
# mkdir /home/test/docker-py
# cd /home/test/docker-py
1、安装docker-py
# wget https://github.com/docker/docker-py/archive/master.zip
# unzip master
# cd docker-py-master/
# python setup.py install
如正常导入模块(import docker)说明安装成功。
2、创建容器docker_create.py
3、运行容器docker_start.py
4、运行
# python docker_create.py
# python docker_start.py
更多API参考https://github.com/docker/docker-py
5、在Docker主机观察结果,见下图:
三、校验服务
1、校验SSH服务
2、校验WEB服务
3、检查数据卷
atptour

2017/02/07 16:13
docker-py与RESTful风格的Docker Remote API相比,能实现相同的功能,貌似docker-py用起来更方便,敢问楼主是不是倾向于使用docker-py呢?
wangjifeng


2015/04/01 16:31
Dockerfile 中的CMD 有错误改为如下:CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
cc

2014/09/25 22:42
好也好复杂
加密


2014/09/17 11:12
膜拜一下大神。
rakeliujie
2014/09/10 09:32
干货docker这块 有出书的打算么?
root 回复于 2014/09/10 10:54
在写了,《docker技术详解与实践》。
胶粘剂

2014/09/09 22:42
不错,带走
分页: 1/1
1

