docker初学
加载镜像:docker load -i ubuntu.tar
导出镜像:docker save -o ubuntu1.tar ubuntu
运行:
docker run -it --name mu ubuntu /bin/bash
ocker run -dit --name mmus docker.1ms.run/library/ubuntu /bin/bash
进入容器:docker exec -it mmus /bin/bash
docker exec -it ubun bash
docker exec -it <container_name> /root/start_flask.sh
停止:docker stop mmus
将容器打包成一个新的镜像资源:
docker commit mu(容器名) ubuntusss(资源名)
强制删除: docker rmi -f paddlex
构建镜像:docker build -t 名称 .
有GPU的运行:
docker run -it --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 bash
docker run -it --gpus all --name ubun nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04 /bin/bash
docker run -it --gpus all --network my_custom_network -p 27000:27000 --shm-size=32g --name ubuntu2 -v my_volume:/root/Code -v /home2/aitp:/root/aitp --user root ubuntu_conda tail -f /dev/null /bin/bash
docker拷贝文件:docker cp Anaconda3-2023.03-Linux-x86_64.sh ubun(容器名):/
重启容器:docker restart
端口映射:docker run -dit -p --name my111 ngnix
自启动:
是的,使用 rc.local
可以在 Docker 容器启动时自动运行 Flask 服务并激活 Anaconda 虚拟环境。具体来说,您需要在 rc.local
文件中启动 Docker 容器后,进入该容器并执行启动 Flask 服务的命令,同时确保激活正确的 Anaconda 虚拟环境。
下面是一个详细的步骤来实现这一目标:
1. 在 Docker 容器中启动 Flask 服务并激活 Anaconda 环境
首先,确保您在容器内可以正常启动 Flask 服务并激活虚拟环境。以下是容器内的步骤:
1.1. 创建启动脚本
你需要创建一个启动脚本来激活 Anaconda 环境并启动 Flask 服务。假设虚拟环境的名称为 paddlex_env
,Flask 服务的启动脚本是 /root/Code/PaddleX/paddlex_restful/command.py
。
-
创建启动脚本
start_flask.sh
(可以放在容器中的某个目录,或直接放在/root/
目录下):bash
#!/bin/bash # 激活 Anaconda 环境 source /root/anaconda3/bin/activate paddlex_env# 启动 Flask 服务 python /root/Code/PaddleX/paddlex_restful/command.py
-
给这个脚本赋予可执行权限:
bash
chmod +x /root/start_flask.sh
1.2. 测试容器内的脚本
确保可以在容器内运行这个脚本,激活虚拟环境并启动 Flask 服务:
bash
docker exec -it <container_name> /root/start_flask.sh
如果一切正常,Flask 服务应当能够成功启动。
2. 配置 rc.local
来自动启动容器和服务
接下来,配置 rc.local
来确保在启动时自动启动容器,并执行启动脚本来启动 Flask 服务。
2.1. 编辑 rc.local
文件
-
打开
rc.local
文件:bash
sudo nano /etc/rc.local
-
在
rc.local
文件中添加命令:- 假设容器名为
paddlex_container
,你需要在rc.local
中加入以下命令:
bash
#!/bin/bash # 启动 Docker 容器 docker start paddlex_container || docker run -d --name paddlex_container <image_name># 在容器内运行 start_flask.sh 脚本启动 Flask 服务 docker exec -d paddlex_container /root/start_flask.shexit 0
docker start paddlex_container
:尝试启动现有的容器。docker run -d --name paddlex_container <image_name>
:如果容器不存在,则创建并启动新容器。docker exec -d paddlex_container /root/start_flask.sh
:在容器中执行启动 Flask 服务的脚本。
记得替换
<image_name>
为你的 Docker 镜像名称。 - 假设容器名为
2.2. 设置 rc.local
可执行权限
确保 rc.local
文件具有执行权限:
bash
sudo chmod +x /etc/rc.local
2.3. 启用并启动 rc.local
服务
-
启用
rc.local
服务(如果你的系统使用systemd
):bash
sudo systemctl daemon-reload sudo systemctl enable rc-local sudo systemctl start rc-local
-
检查
rc-local
服务状态:bash
sudo systemctl status rc-local
3. 测试和调试
-
重启系统,检查容器是否能自动启动并运行 Flask 服务:
bash
sudo reboot
-
检查容器状态,确保容器启动并正常运行 Flask 服务:
bash
docker ps
-
如果有任何问题,可以通过以下命令检查容器日志:
bash
docker logs paddlex_container
4. 优化
-
日志记录:为了便于调试,建议将启动脚本的输出记录到日志文件中,例如:
bash
#!/bin/bash # 激活 Anaconda 环境并启动 Flask 服务,将日志输出到文件 source /root/anaconda3/bin/activate paddlex_env python /root/Code/PaddleX/paddlex_restful/command.py >> /root/flask_service.log 2>&1
-
容器自启动:如果希望容器在系统重启时自动启动,可以在 Docker 容器运行时使用
--restart
选项,例如:bash
docker run -d --restart=unless-stopped --name paddlex_container <image_name>
总结:
- 使用
rc.local
可以实现 Docker 容器自启动,并且在启动时自动激活 Anaconda 环境和运行 Flask 服务。 - 配置
rc.local
启动 Docker 容器并在容器内运行启动脚本来启动 Flask 服务。 - 测试和调试启动过程,确保服务在系统重启后能够正确运行。
如果在配置过程中遇到任何问题,可以随时提问!
相关文章:
docker初学
加载镜像:docker load -i ubuntu.tar 导出镜像:docker save -o ubuntu1.tar ubuntu 运行: docker run -it --name mu ubuntu /bin/bash ocker run -dit --name mmus docker.1ms.run/library/ubuntu /bin/bash 进入容器:docke…...
## Docker 中 Elasticsearch 启动失败:日志文件权限问题排查与解决
好的,这是一份关于你遇到的 Docker Elasticsearch 启动报错问题的笔记,包含问题描述、我的分析判断以及最终的解决方案,适合用于整理成文章。 Docker 中 Elasticsearch 启动失败:日志文件权限问题排查与解决 在使用 Docker部署 E…...

鸿蒙Flutter实战:23-混合开发详解-3-源码模式引入
引言 在前面的文章混合开发详解-2-Har包模式引入中,我们介绍了如何将 Flutter 模块打包成 Har 包,并引入到原生鸿蒙工程中。本文中,我们将介绍如何通过源码依赖的方式,将 Flutter 模块引入到原生鸿蒙工程中。 创建工作 创建一个…...

leetcode:2469. 温度转换(python3解法,数学相关算法题)
难度:简单 给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度,以 摄氏度(Celsius)为单位。 你需要将摄氏度转换为 开氏度(Kelvin)和 华氏度(Fahrenheit),并以数…...

【软件安装】Windows操作系统中安装mongodb数据库和mongo-shell工具
这篇文章,主要介绍Windows操作系统中如何安装mongodb数据库和mongo-shell工具。 目录 一、安装mongodb数据库 1.1、下载mongodb安装包 1.2、添加配置文件 1.3、编写启动脚本(可选) 1.4、启动服务 二、安装mongo-shell工具 2.1、下载mo…...
跨域问题及其CORS解决方案:gin框架中配置跨域
一、同源策略 浏览器的同源策略(Same-Origin Policy)要求:只有协议、域名和端口都相同的请求才被视为同源,才允许正常访问。 两个URL在以下三个方面完全相同时称为"同源": 协议相同(如都是http或…...

记共享元素动画导致的内存泄露
最近在给项目的预览图片页增加共享元素动画的时候,发现了LeakCanary一直报内存泄露。 LeakCanary日志信息 ┬─── │ GC Root: Thread object │ ├─ java.lang.Thread instance │ Leaking: NO (the main thread always runs) │ Thread name: main │ …...

Flyweight(享元)设计模式 软考 享元 和 代理属于结构型设计模式
1.目的:运用共享技术有效地支持大量细粒度的对象 Flyweight(享元)设计模式 是一种结构型设计模式,它的核心目的是通过共享对象来减少内存消耗,特别是在需要大量相似对象的场景中。Flyweight 模式通过将对象的共享细节与…...
Win/Linux安装flash attention2
1.Win 安装Flash_attn (1)第一步:下载flash_attn-xxx.whl 文件 在 1)地址1:HuggingFace 官网 Flash-attn页面 2)地址2:Github 地址 下载对应cuda、torch、python版本的whl文件; …...
【原创】ubuntu22.04下载编译AOSP 15
安装依赖的库,顺便把vim 也安装一下 sudo apt-get install vim sudo apt-get install git gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip font…...

服务器网络配置 netplan一个网口配置两个ip(双ip、辅助ip、别名IP别名)
文章目录 问答 问 # This is the network config written by subiquity network:ethernets:enp125s0f0:dhcp4: noaddresses: [192.168.90.180/24]gateway4: 192.168.90.1nameservers:addresses:- 172.0.0.207- 172.0.0.208enp125s0f1:dhcp4: trueenp125s0f2:dhcp4: trueenp125…...
响应面法(Response Surface Methodology ,RSM)
响应面法是一种结合统计学和数学建模的实验优化技术,通过有限的实验数据,建立输入变量与输出响应之间的数学模型,找到最优操作条件。 1.RSM定义 RSM通过设计实验、拟合数学模型(如多项式方程)和分析响应曲面ÿ…...
针对面试-java集合篇
1.什么是数组 数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 2.数组下标为什么从0开始 寻址公式是:baseAddressi*dataTyeSize,计算下标的内存地址效率较高 3.查找的时间复杂度 随机(通过下标)查询的时间复杂度是O(1) 查找元素(未知…...

Spring Boot 拦截器:解锁5大实用场景
一、Spring Boot中拦截器是什么 在Spring Boot中,拦截器(Interceptor)是一种基于AOP(面向切面编程)思想的组件,用于在请求处理前后插入自定义逻辑,实现权限校验、日志记录、性能监控等非业务功能…...
展锐 Android 15 锁定某个App版本的实现
Android 15 系统锁定Antutu版本的实现方法 在Android系统开发中,有时需要锁定特定应用的版本以确保系统稳定性或测试一致性。本文将介绍如何通过修改Android源码来锁定Antutu跑分软件的版本。 修改概述 这次修改主要涉及以下几个方面: 禁用产品复制文件的检查添加指定版本…...

有两个Python脚本都在虚拟环境下运行,怎么打包成一个系统服务,按照顺序启动?
环境: SEMCP searx.webapp python 问题描述: 有两个python脚本都在虚拟环境下运行,怎么打包成一个系统服务,按照顺序启动? 解决方案: 将这两个 Python 脚本打包成有启动顺序的系统服务,最…...
【Linux cmd】查找进程信息
1、包含 "Test" 关键字的进程 ps -ef | grep Test 显示系统中所有进程的详细信息,包括用户 ID(UID)、进程 ID(PID)、父进程 ID(PPID)、启动时间(STIME)、终端…...
与网格共舞 - 服务网格的运维与问题排查 (Istio 实例)
与网格共舞 - 服务网格的运维与问题排查 (Istio 实例) 在领略了服务网格(以 Istio 为例)在流量管理、可观测性和安全方面提供的强大能力后,我们自然会思考:如何将这个“神器”请进我们的生产环境,并让它稳定、可靠地运行?这需要我们关注运维层面的实践。 部署与升级:网…...

Python 脚本执行命令的深度探索:方法、示例与最佳实践
在现代软件开发过程中,Python 脚本常常需要与其他工具和命令进行交互,以实现自动化任务、跨工具数据处理等功能。Python 提供了多种方式来执行外部命令,并获取其输出,重定向到文件,而不是直接在终端中显示。这种能力使…...

PotPlayer 4K 本地万能影音播放器
今日分享一款来自吾爱论坛大佬分享的啥都能播的的本地播放器,不管是不管是普通视频、4K超清、蓝光3D,还是冷门格式,它基本都能搞定。而且运行流畅不卡顿,电脑配置低也能靠硬件加速,让你根本停不下来。 自带解码器&…...

2025年电工杯A题第一版本Q1-Q4详细思路求解+代码运行
A题 光伏电站发电功率日前预测问题 问题背景 光伏发电是通过半导体材料的光电效应,将太阳能直接转化为电能的技术。光伏电站是由众多光伏发电单元组成的规模化发电设施。 光伏电站的发电功率主要由光伏板表面接收到的太阳辐射总量决定,不同季节太阳光…...

基于阿里云DashScope API构建智能对话指南
背景 公司想对接AI智能体,用于客服系统,经过调研和实施,觉得DashScope 符合需求。 阿里云推出的DashScope灵积模型服务为开发者提供了便捷高效的大模型接入方案。本文将详细介绍如何基于DashScope API构建一个功能完善的智能对话系统&#x…...
HOW - 基于组件库组件改造成自定义组件基本规范
文章目录 Select 选择器改造1. 明确组件目标2. 定义组件 API3. 合理使用默认值4. 支持类型安全的 options 传递5. 支持 ForwardRef(可选)6. 封装样式(可选)7. 使用示例 ...props 位置推荐顺序:最后原因:简要…...

九州未来十三载:开源赋能 智启未来
2012年,九州未来以“开源赋能云边变革”为使命,开启中国开放云边基础架构服务的探索之路。十三载坚守深耕,我们始终以开源为翼,以算力为基,在科技浪潮中砥砺前行,见证并推动着AI时代的算力变革。 坚守初心丨…...

2025年AI搜索引擎发展洞察:技术革新与市场变革
引言:AI搜索的崛起与市场格局重塑 2024-2025年,AI搜索市场迎来了前所未有的变革期。随着DeepSeek-R1等先进大语言模型的推出,传统搜索引擎、AI原生搜索平台以及各类内容平台纷纷加速智能化转型,推动搜索技术从基础信息检索向深度…...

dify调用Streamable HTTP MCP应用
一、概述 上一篇文章,介绍了使用python开发Streamable HTTP MCP应用,链接:https://www.cnblogs.com/xiao987334176/p/18872195 接下来介绍dify如何调用MCP 二、插件 安装插件 需要安装2个插件,分别是:Agent 策略(支持 …...

HCIP实验五
一、实验拓扑图: 二、实验需求分析: 1. PreVal策略:要求确保R4通过R2到达192.168.10.0/24 ,需在R4上针对去往该网段路由配置PreVal策略,为经R2的路径赋予更高优先值,影响本地路由表选路。 2. AS Path策略…...
java将图片转Base64字符串存储mysql数据库
1、mysql数据库的表里新增一个字段image_data,使用TEXT或LONGTEXT类型: CREATE TABLE IMAGES( id INT AUTO_INCREMENT PRIMARY KEY, image_name VARCHAR(255), image_data LONGTEXT, upload_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 2、Java核心…...
题目 3330: 蓝桥杯2025年第十六届省赛真题-01 串
题目 3330: 蓝桥杯2025年第十六届省赛真题-01 串 时间限制: 2s 内存限制: 192MB 提交: 310 解决: 24 题目描述 给定一个由 0, 1, 2, 3 的二进制表示拼接而成的长度无限的 01 串。 其前若干位形如 011011100101110111 。 请求出这个串的前 x 位里有多少个 1 。 输入格…...
初识 Flask 框架
目录 1. Flask 框架概述 1.1 安装 Flask 1.2 创建你的第一个 Flask 应用 1.3 运行 Flask 应用 2. Flask 路由与视图函数 2.1 动态路由 2.2 支持多种 HTTP 请求方法 2.3 使用 Jinja2 模版渲染 HTML 2.5 模版继承与块 3. Flask 表单处理与用户输入 3.1 安装 Flask-WTF …...