python操作docker
docker 自动化实现方式:
Docker SDK for Python是docker支持python调用docker的一个第三方包
-
安装docker第三方包
pip3 install docker
docker-py教基础程
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()
-
当然还有很多方法~,大家就自己学习