当前位置: 首页 > news >正文

20250110doker学习记录

1.本机创建tts环境。用conda.

0.1安装。我都用的默认,你也可以。我安装过一次,如果修复,后面加 -u

bash Anaconda3-2024.10-1-Linux-x86_64.sh

等待一会。 

(base) kt@kt4028:~/Downloads$ conda -V
conda 24.9.2

 学习资源

Conda 常用命令大全(非常详细)零基础入门到精通,收藏这一篇就够了_conda命令-CSDN博客

1.1设置镜像源,防止 出错。

anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

1.1.1查看当前源:

kt@kt4028:~/anaconda3$ conda config --show channels
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- https://repo.anaconda.com/pkgs/main- https://repo.anaconda.com/pkgs/r
kt@kt4028:~/anaconda3$ 

1.1.2删除所有自定义源

kt@kt4028:~/anaconda3$ conda config --remove-key channels
kt@kt4028:~/anaconda3$ conda config --show channels
channels:- https://repo.anaconda.com/pkgs/main- https://repo.anaconda.com/pkgs/r
kt@kt4028:~/anaconda3$ 

1.1.3添加镜像

#添加镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2#终端显示包从哪个channel下载,以及下载地址是什么
conda config --set show_channel_urls yes
kt@kt4028:~$ conda config --show channels
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- defaults- https://repo.anaconda.com/pkgs/main- https://repo.anaconda.com/pkgs/r
kt@kt4028:~$ 

或通过手动方式

(base) kt@kt4028:~/Downloads$ cat ~/.condarc
channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
(base) kt@kt4028:~/Downloads$ 

1.1.4 创建环境 

(base) kt@kt4028:~/Downloads$ conda create -n tts-env python=3.12 -y

1.1.5激活

(base) kt@kt4028:~/Downloads$ conda activate tts-env                                                                                                                                
(tts-env) kt@kt4028:~/Downloads$         

1.1.6防止自动进入base环境

(base) kt@kt4028:~$ conda config --set auto_activate_base false
(base) kt@kt4028:~$ 

1.1.7查看默认位置之下:如上面的tts-env

/home/kt/anaconda3/envs

2.建立 本地文件夹

kt@kt4028:~$ pwd
/home/kt
kt@kt4028:~$ mkdir -p myproject/tts
kt@kt4028:~$ 

这条命令会执行以下操作:

1. 检查  myproject  文件夹是否存在,如果不存在,则创建它。

2. 在  myproject  文件夹内创建  tts  文件夹。使用  mkdir -p  的好处是,即使某些中间目录已经存在,命令也不会报错,只会创建那些不存在的目录。这样可以确保命令的健壮性,避免因目录已存在而导致的错误。

3.拉取git项目

3.1安装git

win

git的安装与配置教程-超详细版_git安装及配置教程-CSDN博客

ubuntu

https://blog.csdn.net/wqzbxh/article/details/134903221?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522b98311b40979a9a3385d39c3eb0e4127%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=b98311b40979a9a3385d39c3eb0e4127&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-134903221-null-null.142^v101^pc_search_result_base1&utm_term=ubuntu%E5%AE%89%E8%A3%85git&spm=1018.2226.3001.4187icon-default.png?t=O83Ahttps://blog.csdn.net/wqzbxh/article/details/134903221?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522b98311b40979a9a3385d39c3eb0e4127%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=b98311b40979a9a3385d39c3eb0e4127&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-134903221-null-null.142%5Ev101%5Epc_search_result_base1&utm_term=ubuntu%E5%AE%89%E8%A3%85git&spm=1018.2226.3001.4187

 GitHub新手用法详解【适合新手入门-建议收藏!!!】-CSDN博客

3.2目标:

https://github.com/2noise/ChatTTS.git

操作:

kt@kt4028:~$ cd myproject
kt@kt4028:~/myproject$ ls
tts
kt@kt4028:~/myproject$ cd tts
kt@kt4028:~/myproject/tts$ git clone https://github.com/2noise/ChatTTS.git
Cloning into 'ChatTTS'...
remote: Enumerating objects: 2676, done.
remote: Counting objects: 100% (745/745), done.
remote: Compressing objects: 100% (304/304), done.
remote: Total 2676 (delta 522), reused 441 (delta 441), pack-reused 1931 (from 3)
Receiving objects: 100% (2676/2676), 8.02 MiB | 361.00 KiB/s, done.
Resolving deltas: 100% (1602/1602), done.
kt@kt4028:~/myproject/tts$ 

4.pycharm完成环境等部署与测试

为了简单,不使用原来的内容只是让其跑起来。

无法上图。描述一下:

新建项目,选择/home/kt/myproject/tts/ChatTTS

使用环境:tts-env

确定,选是。

上一个测试代码:向数据库中写入数据。具体原因后边会用

参考

docker-compose 一个实例-CSDN博客

 代码

from pymongo import MongoClient
from pymongo.errors import ConnectionFailure# 定义MongoDB连接信息
write_host = 'mongodb://admin:password@10.73.30.241:27017/?authSource=admin'
read_host = 'mongodb://admin:password@10.73.30.241:27017/?authSource=admin'
database_name = 'aa'  # 替换为你的数据库名称
collection_name = 'aa'  # 替换为你的集合名称# 连接到27017端口并插入100条数据
try:write_client = MongoClient(write_host)write_db = write_client[database_name]write_collection = write_db[collection_name]# 插入100条测试数据for i in range(100):test_data = {"name": f"test_{i}", "value": i}write_collection.insert_one(test_data)print(f"100 documents inserted into {write_host}")
except ConnectionFailure as e:print(f"Failed to connect to {write_host}: {e}")
finally:write_client.close()# 从27017端口读取数据
try:read_client = MongoClient(read_host)read_db = read_client[database_name]read_collection = read_db[collection_name]# 读取集合中的所有文档documents = read_collection.find()# 打印文档print(f"Data from {read_host}:")for doc in documents:print(doc)print("\n" + "-"*80 + "\n")except ConnectionFailure as e:print(f"Failed to connect to {read_host}: {e}")
finally:read_client.close()

测试合格。主要原因是为了同步卷使用的。

4.docfile文件的建立。应该与现有的系统对应:ubuntu

4.1 Dockerfile内容参考 

FROM ubuntu:20.04# 设置工作目录
WORKDIR /app# 安装必要的软件包
RUN apt-get update && \apt-get install -y \wget \&& apt-get clean \&& rm -rf /var/lib/apt/lists/*# 下载并安装Miniconda
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /miniconda.sh && \/bin/bash /miniconda.sh -b -p /opt/conda && \rm /miniconda.sh && \/opt/conda/bin/conda clean --all -y# 设置环境变量
ENV PATH=/opt/conda/bin:$PATH# 初始化conda
RUN /opt/conda/bin/conda init bash# 其他必要的设置(根据项目实际需求添加)# 注意:不再设置默认命令CMD,因为后期会手动运行脚本

4.2 start.sh不用了

#!/bin/bash# 激活虚拟环境
source /app/tts-env/bin/activate# 运行Python脚本
python /app/ChatTTS/ceshi.py

4.3 生成images

kt@kt4028:~$ vi Dockerfile
kt@kt4028:~$ vi start.sh----------------------网络的因素,要使用宿主机上的网docker build --network="host" -t tts-i

4.4 测试挂载情况,因为要测试网络所以用到本地。

docker run -it --network='host' --name my-tts-container -v /home/kt/myproject/tts/ChatTTS:/app/ChatTTS -v /home/kt/anaconda3/envs/tts-env:/opt/conda/envs/tts-env my-tts-image /bin/bash

4.5进入后有个错误

运行 ceshi.py 时,pymongo 依赖的 cryptography 库遇到了与 OpenSSL 3.0 相关的问题。具体来说,OpenSSL 3.0 的 legacy provider 未能成功加载,这通常是因为 OpenSSL 3.0 默认不启用 legacy provider,而某些库(如 cryptography)在某些情况下可能需要它。

export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1

5.将容器打包成一个新镜像

kt@kt4028:~$ docker ps -a
CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS         PORTS                                           NAMES
3ae93b7f7af4   my-tts-image    "/bin/bash"              6 minutes ago   Up 3 seconds                                                   my-tts-container
c9652fe162bd   mongo-express   "/sbin/tini -- /dock…"   23 hours ago    Up 23 hours    0.0.0.0:8081->8081/tcp, :::8081->8081/tcp       my-mongo-express
d45df328cd77   mongo:latest    "docker-entrypoint.s…"   23 hours ago    Up 23 hours    0.0.0.0:27017->27017/tcp, :::27017->27017/tcp   my-mongo
kt@kt4028:~$ docker commit my-tts-container tts-i:1.0
sha256:fcd3aa9d1c0a84999885be2f1d3ff0642073873c81a9fd095f4505521d36247c
kt@kt4028:~$ docker images
REPOSITORY      TAG       IMAGE ID       CREATED          SIZE
tts-i           1.0       fcd3aa9d1c0a   14 seconds ago   608MB

5.2再验证

docker run -it --network='host' --name tts-i_1 -v /home/kt/myproject/tts/ChatTTS:/app/ChatTTS -v /home/kt/anaconda3/envs/tts-env:/opt/conda/envs/tts-env tts-i /bin/bash

6.重新生成

FROM ubuntu:20.04# 设置工作目录
WORKDIR /app# 安装必要的软件包
RUN apt-get update && \apt-get install -y \wget \&& apt-get clean \&& rm -rf /var/lib/apt/lists/*# 下载并安装Miniconda
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /miniconda.sh && \/bin/bash /miniconda.sh -b -p /opt/conda && \rm /miniconda.sh && \/opt/conda/bin/conda clean --all -y# 设置环境变量
ENV PATH=/opt/conda/bin:$PATH# 初始化conda
RUN /opt/conda/bin/conda init bash# 自动激活tts-env环境
RUN echo 'source /opt/conda/etc/profile.d/conda.sh && conda activate tts-env' >> ~/.bashrc# 修复 mongo错误
ENV CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1# 其他必要的设置(根据项目实际需求添加)# 注意:不再设置默认命令CMD,因为后期会手动运行脚本

 测试成功

kt@kt4028:~$ docker build --network="host" -t tts-ii /home/kt
[+] Building 2.5s (10/10) FINISHED                               docker:default=> [internal] load build definition from Dockerfile                       0.0s=> => transferring dockerfile: 904B                                       0.0s=> [internal] load metadata for docker.io/library/ubuntu:20.04            2.4s=> [internal] load .dockerignore                                          0.0s=> => transferring context: 2B                                            0.0s=> [1/6] FROM docker.io/library/ubuntu:20.04@sha256:8e5c4f0285ecbb4ead07  0.0s=> CACHED [2/6] WORKDIR /app                                              0.0s=> CACHED [3/6] RUN apt-get update &&     apt-get install -y     wget     0.0s=> CACHED [4/6] RUN wget https://repo.anaconda.com/miniconda/Miniconda3-  0.0s=> CACHED [5/6] RUN /opt/conda/bin/conda init bash                        0.0s=> [6/6] RUN echo 'source /opt/conda/etc/profile.d/conda.sh && conda act  0.1s=> exporting to image                                                     0.0s=> => exporting layers                                                    0.0s=> => writing image sha256:386459b96e87b0bf1f94b5aa130afacd1af989e98291b  0.0s=> => naming to docker.io/library/tts-ii                                  0.0s
kt@kt4028:~$ docker run -it --network='host' --name my-tts-ii -v /home/kt/myproject/tts/ChatTTS:/app/ChatTTS -v /home/kt/anaconda3/envs/tts-env:/opt/conda/envs/tts-env tts-ii /bin/bash(tts-env) root@kt4028:/app# cd ChatTTS
(tts-env) root@kt4028:/app/ChatTTS# python ceshi.py
100 documents inserted into mongodb://admin:password@10.73.30.241:27017/?authSource=admin
Data from mongodb://admin:password@10.73.30.241:27017/?authSource=admin:
{'_id': ObjectId('6780d3fc0b669fd899e6ca2e'), 'name': 'test_0', 'value': 0}
{'_id': ObjectId('6780d3fc0b669fd899e6ca2f'), 'name': 'test_1', 'value': 1}
{'_id': ObjectId('6780d3fc0b669fd899e6ca30'), 'name': 'test_2', 'value': 2}
{'_id': ObjectId('6780d3fc0b669fd899e6ca31'), 'name': 'test_3', 'value': 3}
{'_id': ObjectId('6780d3fc0b669fd899e6ca32'), 'name': 'test_4', 'value': 4}
{'_id': ObjectId('6780d3fc0b669fd899e6ca33'), 'name': 'test_5', 'value': 5}

今天先这样,后天。加在同一网络下,内部读取,不在走网络

http://www.lryc.cn/news/518731.html

相关文章:

  • MPU6050: 卡尔曼滤波, 低通滤波
  • C++的标准和C++的编译版本
  • python学习笔记—17—数据容器之字符串
  • UE5 使用内置组件进行网格切割
  • 51单片机——串口通信(重点)
  • Taro+Vue实现图片裁剪组件
  • PHP民宿酒店预订系统小程序源码
  • Hadoop3.x 万字解析,从入门到剖析源码
  • VUE3 常用的组件介绍
  • deepin-Wine 运行器合并打包器和添加从镜像提取 DLL 的功能
  • [大模型]本地离线运行openwebui+ollama容器化部署
  • 再次梳理ISP的大致流程
  • HBuilderX打包ios保姆式教程
  • 《解锁鸿蒙系统AI能力,开启智能应用开发新时代》
  • rhcsa练习(3)
  • 科研绘图系列:R语言绘制Y轴截断分组柱状图(y-axis break bar plot)
  • 跳出技术陷阱,探索财富自由的多元路径
  • qml SpringAnimation详解
  • 中学综合素质笔记3
  • uniapp vue2版本如何设置i18n
  • 【踩坑记录❌】ubuntu 安装 NVIDIA 显卡驱动不要 autoinstall
  • vue3 + ts + element-plus(el-upload + vuedraggable实现上传OSS并排序)
  • SQL开窗函数相关的面试题和答案
  • 【数据分析(一)】初探 Numpy
  • 国产化ARM平台-飞腾派开发板硬件与系统
  • [ LeetCode 75 ] 283 移动零(JavaScript)
  • 前端学习汇总
  • 蓝笔科技 | 超凡妈妈赋能计划-【北大生涯规划师特别企划】
  • 【电路笔记 TMS320C6***DSP】C6748 EDMA3配置笔记 寄存器配置+影子通道寄存器+配置示例
  • 2025新春烟花代码(二)HTML5实现孔明灯和烟花效果