【小型网站测试】使用python脚本来控制docker容器的编排

开发情况的描述

c 复制代码
1:本地主机windows系统
2:windows主机,无法直接执行shell脚本
3:windows主机中有WSL2--也就是安装了linux子系统【ubuntu】
4:ubuntu中可以执行shell脚本
5:有docker  docker desktop(docker桌面版) docker compose
6:服务器是centos系统,可以执行shell脚本
7:容器中也存在shell脚本,容器中默认可执行shell脚本

希望达到效果:一种脚本来控制容器的执行--并后续发送命令

方式一:失败
c 复制代码
1:使用shell脚本,直接让本地主机和centos服务器 使用同一个shell脚本来进行控制容器
----
结果---失败
1:unbuntu中可以通过shell脚本方式控制容器-----OK
2:centos服务器中可以通过shell脚本,-----OK
3:windows主机中通过wsl终端来执行shell脚本控制docker容器会出现无法访问容器ip情况
-报错--未知--未能找到答案
----
方式二:成功
c 复制代码
1:windows         主机种使用python脚本来进行控制容器编排等的后续发送命令--OK
2:windows的linux子系统中使用python脚本来进行控制容器编排等的后续发送命令--OK
2:centos          系统中使用python脚本来进行控制容器编排等的后续发送命令--OK

python脚本中所需要的插件

c 复制代码
os
docker
c 复制代码
1:可以通过 os库来执行 
docker compose build
docker compose up -d
2:需要连接到容器服务组的操作需要docker 库
通过pip方式来安装docker库插件[pip install docker]

下面是centos 服务器中额外安装python的方式

因为华为服务器中的centos7版本的自带python2.7 和python 3.6版本

需求:在服务器中安装python3.10.13版本【稳定版本】 并且安装最新版本的pip

注意:

1:这里会使用到华为的镜像源
2:如果无法通过脚本脚本方式安装,请按照以下命令手动输入安装
c 复制代码
#!/bin/sh

#更新centos7的源
cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
yum clean all
yum makecache
yum repolist all

#更新yum   安装python所需的插件--并且添加openssl11的软连接到旧版本的openssl中
yum update -y
yum install -y gcc openssl openssl-devel libffi-devel bzip2-devel openssl11 openssl11-devel openssl11-static
ln -sf /usr/lib64/pkgconfig/openssl11.pc /usr/lib64/pkgconfig/openssl.pc

# 下载python3.10.13版本的安装包----因为无法通过yum 安装python3.10版本
cd /home/sh/
wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz

# 解压安装包--进行安装python3.10.13
tar zxf Python-3.10.13.tgz --no-same-owner
sleep 5s
cd Python-3.10.13
./configure --enable-optimizations
make
make altinstall

#make altinstall 表示不通过覆盖旧版本的python 安装新版本的python3.10
# 本文件存放于 /home/sh/test.sh
# 执行本脚本的命令
# bash /home/sh/test.sh
相关推荐
留不住丨晚霞12 分钟前
说说SpringBoot常用的注解?
java·开发语言
大模型真好玩14 分钟前
准确率飙升!GraphRAG如何利用知识图谱提升RAG答案质量(额外篇)——大规模文本数据下GraphRAG实战
人工智能·python·mcp
198915 分钟前
【零基础学AI】第30讲:生成对抗网络(GAN)实战 - 手写数字生成
人工智能·python·深度学习·神经网络·机器学习·生成对抗网络·近邻算法
i小溪17 分钟前
在使用 Docker 时,如果容器挂载的数据目录(如 `/var/moments`)位于数据盘,只要服务没有读写,数据盘是否就不会被唤醒?
人工智能·docker
hardStudy_h22 分钟前
C++——内联函数与Lambda表达式
开发语言·jvm·c++
applebomb25 分钟前
没合适的组合wheel包,就自行编译flash_attn吧
python·ubuntu·attention·flash
艾莉丝努力练剑1 小时前
【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(三)
c语言·开发语言·数据结构·学习·算法
Chasing__Dreams1 小时前
python--杂识--18.1--pandas数据插入sqlite并进行查询
python·sqlite·pandas
彭泽布衣2 小时前
python2.7/lib-dynload/_ssl.so: undefined symbol: sk_pop_free
python·sk_pop_free
witton2 小时前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合