1.docker宿主机配置文件修改
1
2
3
|
$vim /etc/default/docker #再已有OPTS中添加 DOCKER_OPTS= "-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock" 使得可以通过tcp的2375端口连接到docker守护进程中,第二个-H及之后的内容可以省略 |
2.安装docker-py
1
|
$sudo pip install docker - py |
3.编写api脚本
参考文档
http://docker-py.readthedocs.org/en/latest/
1
2
3
4
5
6
7
8
9
|
from docker import Client d=Client(base_url= 'tcp://10.109.252.221:2375' ,version= 'auto' ,timeout=10) #注意填写url端口版本号和超时时间 def containerCreate(** command ): container=d.create_containter(** command ) print container #这里使用非关键字可变长参数**command,可以将需要使用的参数以字典形式传输,并且函数会自动识别字典内的参数 containerCreate(**{ 'name' : 'test1' , 'command' : '/bin/bash' , 'image' : 'ubuntu' }) #这里注意要使用**双星号传实参,不然会出错。 |
4.端口绑定、磁盘挂载和link操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def containerCreate(port, volume, link, * * command): # 创建容器 command[ 'host_config' ] = d.create_host_config(port_bindings = port, binds = [volume],links = link) container = d.create_container( * * command) d.start(container = container.get( 'Id' )) print container containerCreate( * * { 'name' : 'test1' , 'stdin_open' : True , 'tty' : True , 'command' : '/bin/bash' , 'image' : '10.109.252.221:5000/ubuntu' , 'ports' :[ 8008 ], 'port' :{ 8008 : 9995 }, 'volume' : '/home/ubuntu/test:/test' , 'link' :{ 'mysql' : 'db' }}) #其中,ports必须声明,port和volume是我自己写的,用来传递参数 #ports声明容器开放的端口,port中,第一个是容器端口,后一个是主机端口,正好与dokcer run -p相反 #link操作需要传递字典或元组,我自己使用元组没有成功,用字典即可。 |
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/l6807718/article/details/51242693