python3 重启docker方法

一、工作中的问题

工作中进行测试时,需要修改nacos配置,修改完成后再重启对应的docker容器,让配置生效,研究了下,使用docker库可以做到。

如何修改nacos配置可以参见我的另一篇文章,传送门

python3 修改nacos的yaml配置_xugexuge的博客-CSDN博客

二、安装docker三方库

python 复制代码
pip install docker

三、代码如下

python 复制代码
import docker

# 创建 Docker 客户端实例
client = docker.from_env()

# 查找正在运行的 Docker 容器
containers = client.containers.list()

for container in containers:
    container_name = container.name  # docker的名字
    container_id = container.id  # docker的id
    container_status = container.status  # docker的状态

    """
    这里可以写你的业务逻辑,比如停止某个id的docker,或者停止某个名字的docker
    """
    container.stop()  # 停止docker
    container.start()  # 启动docker
    container.restart()  # 重启docker

# 关闭 Docker 客户端连接
client.close()

四、注意点

按以上写法,由于没有输入账号密码,需要在docker容器的那台服务器上去执行代码。如果想远程执行,需要在创建docker客户端实例后加入如下代码进行登录,但是这里就需要运维将服务器的登录方式设置为手动登录才能使用。

python 复制代码
# 登录 Docker
client.login(username='your-username', password='your-password')

示例写法如下

python 复制代码
import docker

# 创建 Docker 客户端实例
client = docker.from_env()

# 登录 Docker
client.login(username='your-username', password='your-password')

# 查找正在运行的 Docker 容器
containers = client.containers.list()

for container in containers:
    container_name = container.name  # docker的名字
    container_id = container.id  # docker的id
    container_status = container.status  # docker的状态

    """
    这里可以写你的业务逻辑,比如停止某个id的docker,或者停止某个名字的docker
    """
    container.stop()  # 停止docker
    container.start()  # 启动docker
    container.restart()  # 重启docker
# 关闭 Docker 客户端连接
client.close()
相关推荐
2401_868534784 小时前
分析RTOS与Linux有什么区别
linux·运维·服务器
Peace5 小时前
【Nginx】
linux·运维·nginx
网络与设备以及操作系统学习使用者6 小时前
Linux与Windows核心差异深度解析
linux·运维·网络·windows·学习
ai产品老杨6 小时前
解耦异构算力:基于 Docker 与边缘计算的企业级 AI 视频管理平台架构演进(支持 GB28181/RTSP 与源码交付)
人工智能·docker·边缘计算
fiveym8 小时前
PXE安装Debian报错:GRUB安装失败排查指南
运维·debian
张小姐的猫9 小时前
【Linux】多线程 —— 线程同步 | 生产者消费者模型 | POSIX 信号量
linux·运维·服务器
handler019 小时前
【MySQL】教你库与表的增删查改操作(基础)
运维·数据库·笔记·sql·mysql·数据·分析
biter down9 小时前
12:参数化测试,一套用例批量跑 N 组数据
运维·python
十年一梦实验室10 小时前
【ChatGPT】阳极氧化线 Global SI 自动化系统深度拆解、爆炸图10张、信息图10张、C++代码框架
运维·自动化
Harm灬小海10 小时前
【云计算学习之路】学习Centos7系统-Linux下用户及组管理
linux·运维·服务器·学习·云计算