docker初学

news2025/5/24 18:38:51

加载镜像: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 文件
  1. 打开 rc.local 文件:

     

    bash

    sudo nano /etc/rc.local
    
  2. 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.sh
    
    exit 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 服务
  1. 启用 rc.local 服务(如果你的系统使用 systemd):

     

    bash

    sudo systemctl daemon-reload
    sudo systemctl enable rc-local
    sudo systemctl start rc-local
    
  2. 检查 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 服务。
  • 测试和调试启动过程,确保服务在系统重启后能够正确运行。

如果在配置过程中遇到任何问题,可以随时提问!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2384797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙Flutter实战:23-混合开发详解-3-源码模式引入

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

leetcode:2469. 温度转换(python3解法,数学相关算法题)

难度&#xff1a;简单 给你一个四舍五入到两位小数的非负浮点数 celsius 来表示温度&#xff0c;以 摄氏度&#xff08;Celsius&#xff09;为单位。 你需要将摄氏度转换为 开氏度&#xff08;Kelvin&#xff09;和 华氏度&#xff08;Fahrenheit&#xff09;&#xff0c;并以数…

【软件安装】Windows操作系统中安装mongodb数据库和mongo-shell工具

这篇文章&#xff0c;主要介绍Windows操作系统中如何安装mongodb数据库和mongo-shell工具。 目录 一、安装mongodb数据库 1.1、下载mongodb安装包 1.2、添加配置文件 1.3、编写启动脚本&#xff08;可选&#xff09; 1.4、启动服务 二、安装mongo-shell工具 2.1、下载mo…

记共享元素动画导致的内存泄露

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

Flyweight(享元)设计模式 软考 享元 和 代理属于结构型设计模式

1.目的&#xff1a;运用共享技术有效地支持大量细粒度的对象 Flyweight&#xff08;享元&#xff09;设计模式 是一种结构型设计模式&#xff0c;它的核心目的是通过共享对象来减少内存消耗&#xff0c;特别是在需要大量相似对象的场景中。Flyweight 模式通过将对象的共享细节与…

服务器网络配置 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)

响应面法是一种结合统计学和数学建模的实验优化技术&#xff0c;通过有限的实验数据&#xff0c;建立输入变量与输出响应之间的数学模型&#xff0c;找到最优操作条件。 1.RSM定义 RSM通过设计实验、拟合数学模型&#xff08;如多项式方程&#xff09;和分析响应曲面&#xff…

Spring Boot 拦截器:解锁5大实用场景

一、Spring Boot中拦截器是什么 在Spring Boot中&#xff0c;拦截器&#xff08;Interceptor&#xff09;是一种基于AOP&#xff08;面向切面编程&#xff09;思想的组件&#xff0c;用于在请求处理前后插入自定义逻辑&#xff0c;实现权限校验、日志记录、性能监控等非业务功能…

有两个Python脚本都在虚拟环境下运行,怎么打包成一个系统服务,按照顺序启动?

环境&#xff1a; SEMCP searx.webapp python 问题描述&#xff1a; 有两个python脚本都在虚拟环境下运行&#xff0c;怎么打包成一个系统服务&#xff0c;按照顺序启动&#xff1f; 解决方案&#xff1a; 将这两个 Python 脚本打包成有启动顺序的系统服务&#xff0c;最…

Python 脚本执行命令的深度探索:方法、示例与最佳实践

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

PotPlayer 4K 本地万能影音播放器

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

2025年电工杯A题第一版本Q1-Q4详细思路求解+代码运行

A题 光伏电站发电功率日前预测问题 问题背景 光伏发电是通过半导体材料的光电效应&#xff0c;将太阳能直接转化为电能的技术。光伏电站是由众多光伏发电单元组成的规模化发电设施。 光伏电站的发电功率主要由光伏板表面接收到的太阳辐射总量决定&#xff0c;不同季节太阳光…

基于阿里云DashScope API构建智能对话指南

背景 公司想对接AI智能体&#xff0c;用于客服系统&#xff0c;经过调研和实施&#xff0c;觉得DashScope 符合需求。 阿里云推出的DashScope灵积模型服务为开发者提供了便捷高效的大模型接入方案。本文将详细介绍如何基于DashScope API构建一个功能完善的智能对话系统&#x…

九州未来十三载:开源赋能 智启未来

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

2025年AI搜索引擎发展洞察:技术革新与市场变革

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

dify调用Streamable HTTP MCP应用

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

HCIP实验五

一、实验拓扑图&#xff1a; 二、实验需求分析&#xff1a; 1. PreVal策略&#xff1a;要求确保R4通过R2到达192.168.10.0/24 &#xff0c;需在R4上针对去往该网段路由配置PreVal策略&#xff0c;为经R2的路径赋予更高优先值&#xff0c;影响本地路由表选路。 2. AS Path策略…

vivado fpga程序固化

一般下载到fpga上的程序在掉电之后就会丢失&#xff0c;如果想要掉电之后程序不丢失&#xff0c;就需要将比特流文件固化到板载的flash上。 以下以我的7a100t开发板为例&#xff0c;介绍程序固化的流程 点击OK就可以下载了。 一个奇怪的问题 有一次我的一个工程固化之后&…

OpenCV CUDA模块图像特征检测与描述------图像中快速检测特征点类cv::cuda::FastFeatureDetector

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::FastFeatureDetector 是 OpenCV 的 CUDA 加速模块中的一部分&#xff0c;用于在图像中快速检测特征点。FAST&#xff08;Features fro…

SpringMVC(结合源码浅析工作流程)

SpringMVC 概念 Spring MVC 是基于前端控制器&#xff08;Front Controller&#xff09;设计模式的 Web 框架&#xff0c;在 Web 应用中指一个统一的入口&#xff0c;用来接收所有客户端请求&#xff0c;并统一进行分发、处理。在 SpringMVC 中&#xff0c;前端控制器就是 Di…