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

docker服务器运维

使用docker的目的:避免python环境被污染,也避免本项目的包版本影响其他服务。起到隔离的作用。
以python docker为例

目录结构:
your—project/
    |---- app/
        |---- main.py
        |---- requirements.txt
        |---- data/
        |---- logs/
    |---- deploy/
        |---- dockerfile

docker build时的目录
your—project/

目的制作新镜像,避免每次重复安装python package,持久化data和logs文件避免文件丢失国内的镜像建议在轩辕上下载

一、创建dockerfile
 

#从哪个镜像基础上制作新镜像 from your_image:tag1 #设置环境 ENV LOG_DIR=/app/logs ENV DATA_DIR=/app/data #设置python的源为阿里云 run pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ run pip config set install.trusted-host mirrors.aliyun.com #创建docker内的目录 run mkdir -p $DATA_DIR $LOG_DIR #切换工作目录 WORKDIR /app #声明持久化 VOLUME ["/app/data","/app/logs"]COPY ./app/ . COPY requirements.txt run pip install --no-cache-dir -r requirements.txt CMD ["python","main.py"]

 

二、制作镜像

docker build -t my_image_name:tag_version -f ./deploy/dockerfile .

 

执行完后,使用images命令显示已经创建好的镜像

docker imagesdocker rmi my_image_name:tag_version  #可以删除这个镜像docker rmi  id123 # ID的前3个字母 删除镜像

 

 

三、创建容器

docker build --name my_container_name --add-host=host.docker.internal:host-gateway -v ./app/data:/app/data -v ./app/logs:/app/logs my_images_name:tag_version

--name 是容器命名

也可以事后改名

docker rename old_container_name new_container_name

显示全部容器

docker ps -a

删除容器

docker rm my_contrainer_name

docker rm 容器的前3个id字母 

--add-host 的目的是为了在容器内访问 localhost的时候,能访问到宿主机

-v 是挂载目录   格式   宿主机目录:docker内目录。  避免文件丢失。实际文件存放位置是宿主机目录。docker容器删除后,文件仍然保存着。

 

四、docker的启动和使用

docker start my_container_name 

 

也可以在cron计划任务里启用

sudo crontab -e

0 2 * * MON-FRI docker start my_container_name

 

 

http://www.hskmm.com/?act=detail&tid=21414

相关文章:

  • Nginx 反向代理与负载均衡核心内容总结 - 实践
  • 这款免费Windows优化神器!只有5M电脑绿色工具!ZyperWin++下载安装教程
  • 原核蛋白表达与真核蛋白表达的差异选择
  • 泛型类型参数
  • 完整教程:【数据结构——十字链表】
  • CF1584E Game with Stones 题解
  • 高德解包和打包报错
  • Python 中的上下文管理器与 `with` 语句全解析
  • 用友U8Api 接口对接
  • 填坑:VC++ 采用OpenSSL 3.0接口方式生成RSA密钥 - 教程
  • JUC:AQS
  • CF1980F2 Field Division (hard version) 题解
  • JUC:ThreadLocal
  • 广义串并联图とP6790 [SNOI2020] 生成树
  • JUC: Java对象内存布局和对象头
  • Manim实现波浪形文字特效
  • JUC: synchronized与锁升级
  • lang / philipino / feilvbin / taglog / tajialu
  • Windows上安装2个不同版本的MySQL5.7和8.4
  • cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行
  • 2025.9.30
  • C#/.NET/.NET Core技术前沿周刊 | 第 56 期(2025年9.22-9.28)
  • 反转链表
  • 天津港口海鲜之旅全攻略(2025最新版)
  • tomcat创建bat启动,结合任务计划实现自动重启tomcat服务 - 详解
  • 实用指南:【论文精读】Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
  • Chromium V8类型混淆漏洞CVE-2025-10585安全分析
  • Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生
  • 香橙派5pro驱动开发(一)
  • Python 脚本遇到 SSL 证书问题