python操作docker
安装
pip3 install docker
基本使
import docker
client = docker.from_env() # 创建一个docker客户端
client.containers.run(image_name, # image_name 是我们docker镜像的name
detach=True, # detach=True,是docker run -d 后台运行容器
remove=True, # 容器如果stop了,会自动删除容器
tty=True, # 分配一个tty docker run -t
volumes=volumes, # 与宿主机的共享目录, docker run -v /var/:/opt
command=command) # The command to run in the container
这里我们启动一个tar镜像[^本地大的包],这时执行docker images 就可以看到tar已经转成docker镜像
docker load --input /home/uos/test/mytest.tar
docker images
我们需要记住docker images返回的REPOSITORY 和 TAG 来组成image_name = ‘mytest:v1’
有了这个信息,我们就可以启动docker 容器了
container = client.containers.run( 'mytest:v1', detach=True, remove=True, tty=True, volumes=['/home/uos/test/:/opt'], command='/bin/bash') # 返回一个容器对象。有了这个容器对象我们就可以操作容器了
操作容器对象
在容器中执行命令
- 在容器中执行命令
cmd = 'ls'
code,stream = container.exec_run(cmd, stream=True) # 返回一个元祖 (exit_code, output) stream就是我们的ls的返回值,但是需要decode一下
s = ''
for x in stream:
print(x.decode(), end='')
s += x.decode()
logger.info(s)
- 停止、启动容器
container.stop()
container.start()
参考
https://docker-py.readthedocs.io/en/stable/