1.docker软件自带docker rest api,不用安装;
需要设置下docker配置文件
vi /etc/default/docker.io 或者 vi /etc/default/docker #追加下面一行 DOCKER_OPTS="-H tcp://0.0.0.0:5555 -H unix://var/run/docker.sock"
重启下docker, service docker restart即可。
用法:
#1.查看所有镜像 #curl ‘http://127.0.0.1:5555/images/json?all=0‘| python -m json.tool #2.查看运行的容器 #curl http://127.0.0.1:5555/containers/json #curl http://127.0.0.1:5555/containers/json |python -m json.tool #3.查看某个容器具体信息 #curl -XGET ‘http://127.0.0.1:4243/containers/df7b7568fa7a/json‘ | python -m json.tool #4.关闭、开启容器 #curl -s -XPOST "http://127.0.0.1:5555/containers/d0274fdba510/stop" #curl -s -XPOST "http://127.0.0.1:5555/containers/d0274fdba510/start"
2.安装docker-python
#apt-get install python-pip #pip install docker-py
用法:
[email protected]:~# ipython Python 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. #倒入docker模块 In [1]: import docker In [2]: docker. docker.Client docker.client docker.ssladapter docker.unixconn docker.version docker.auth docker.errors docker.tls docker.utils #设置链接 In [2]: d = docker.Client(base_url=‘unix://var/run/docker.sock‘,version=‘1.9‘,timeout=10) #docker模块的用法 In [3]: d. d.adapters d.headers d.proxies d.attach d.history d.pull d.attach_socket d.hooks d.push d.auth d.images d.put d.base_url d.import_image d.remove_container d.build d.info d.remove_image d.cert d.insert d.request d.close d.inspect_container d.resize d.commit d.inspect_image d.resolve_redirects d.containers d.kill d.restart d.cookies d.load_image d.search d.copy d.login d.send d.create_container d.logs d.start d.create_container_from_config d.max_redirects d.stop d.delete d.mount d.stream d.diff d.options d.tag d.events d.params d.top d.export d.patch d.trust_env d.get d.ping d.verify d.get_adapter d.port d.version d.get_image d.post d.wait d.head d.prepare_request #查看所有镜像 In [3]: d.images() Out[3]: [{u‘Created‘: 1409856139, u‘Id‘: u‘68eb857ffb513a3809e94c26925abdff3783dc13e2a96b01d8e74688ab8e48f7‘, u‘ParentId‘: u‘34e94e67e63a0f079d9336b3c2a52e814d138e5b3f1f614a0cfe273814ed7c0a‘, u‘RepoTags‘: [u‘centos:centos6‘], u‘Size‘: 212675513, u‘VirtualSize‘: 212675513}, {u‘Created‘: 1409686431, u‘Id‘: u‘e5322c5256de057b73ca9d2552ecfceaed350dd6f0465d0716cad9f75f9cb374‘, u‘ParentId‘: u‘aad454798945a2d2fa67af9b99a4ef4667aa4d4eb5701ba7bc5233c381c47fed‘, u‘RepoTags‘: [u‘ubuntu1004/apache2:latest‘], u‘Size‘: 0, u‘VirtualSize‘: 298356004}] #搜索镜像 In [4]: d.search(‘ubuntu_sshd‘) #下载镜像 In [5]: d.pull(‘ubuntu_sshd‘) #启动容器 In [6]: d.start(‘apache‘) In [7]: d.start(container="e5322c5256de057b73ca9d2552ecfceaed350dd6f0465d0716cad9f75f9cb374") #关闭容器 In [8]: d.stop(‘apache‘) #查看容器日志 In [7]: d.logs(container="e5322c5256de057b73ca9d2552ecfceaed350dd6f0465d0716cad9f75f9cb374") #关闭容器后,通过inspect再次查看容器状态 In [8]: d.stop(‘55bd7d4ecd0b‘) In [9]: re_info = d.inspect_container(‘55bd7d4ecd0b‘) In [10]: re_info[‘State‘][‘Running‘] Out[10]: False
时间: 2024-10-25 09:37:11