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

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 文件
  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.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 服务
  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 服务。
  • 测试和调试启动过程,确保服务在系统重启后能够正确运行。

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

相关文章:

  • w~大模型~合集4
  • 【Linux系列】EVS 与 VBD 的对比
  • nvidia Thor U与qualcomm 8295 DMPIS算力测试对比
  • 用matlab提取abaqus odb文件中的节点信息
  • 谢飞机的Spring WebFlux面试之旅:从基础到深入
  • 服务接口鉴权与内部认证:自定义注解与AOP实现的企业级实践
  • 免杀一 线程加载
  • Excel 打开密码:守护数据安全的 “钥匙”
  • MySQL:备份还原数据库(mysqldump)
  • c# 解码 encodeURIComponent
  • RocketMQ 生产消费消息消息解析与重试机制详解
  • [GHCTF 2025]ret2libc1(NSSCTF)
  • 云蝠语音智能体——电话面试中的智能助手
  • 搭配前端食用
  • 【小程序】手机号快速验证组件如何使用对公转账方式
  • 一文详解RTMP协议
  • 每日一练,冲进国赛!全国青少年信息素养大赛-图形化编程—省赛真题——小鸡吃东西
  • 服务器为什么会产生垃圾文件
  • 【摄影测量与遥感】卫星姿态角解析:Roll/Pitch/Yaw与Φ/Ω/Κ的对应关系
  • NIST提出新型安全指标:识别潜在被利用漏洞
  • 深圳城乡和建设局网站首页/站长统计幸福宝下载
  • 九江做网站哪家好/百度客服电话人工服务热线
  • 网站防劫持怎么做/企业宣传册
  • vue 做pc网站可以吗/外链收录网站
  • 企业网站建设的基本原则/排名前50名免费的网站
  • 怎样开网店流程视频/深圳百度搜索排名优化