分享好友 最新动态首页 最新动态分类 切换频道
docker 简单交付web项目
2024-12-27 05:22

运行的软件越来越复杂,环境配置问题所造成的麻烦层出不穷……为了解决这些问题,Docker无疑在这一方向上迈出了具有革新意义的一步。在一台服务器上同时运行一千个Docker容器,这已经成为现实。源自《Docker技术入门与实战》。

docker 简单交付web项目

本文章不对docker的原理和使用做深入介绍,只介绍如何操作把一个web项目打包成一个docker镜像交付,如何服务和依赖的太多,我建议把他们拆分开一个个的docker容器,用docker-compose来处理。

我的项目是用python3.6.5写的,使用了 tornado 异步框架,celery 任务队列(rabbitmq做broker_url,redis做result_backend,redis做缓存,mysql持久化,用supervisor管理进程。还使用了其他的依赖,比如处理音频的librosa,ai常用的torch,opencv, numpy, dlib等等。

特别提醒:对于需要cuda和cudnn的支持,此处推荐使用现成的nvidia的docker镜像来处理

 

下面是几个对你有帮助的网址,部分可能需要科学上网:

https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md https://gitlab.com/nvidia/container-images/cuda

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html

 

注意:需先安装 nvidia-container-toolkit,并重启docker服务!否则会报错

拉取docker镜像,使用下面类似的命令,以自己情况而定:

docker pull nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04

然后使用该镜像启动一个容器,进入容器后先测试2个命令,nvidia-smi和nvcc -V是否可以使用,可以使用后再继续

 

启动容器命令,类似下面

docker run --gpus all -it --name mycuda -v /data:/data nvidia/cuda:10.0-cudnn7-devel-ubuntu16.04 /bin/bash

注意加上 --gpus all,对于要使用声卡的还要加上 --device /dev/snd

在容器里,然后继续你的web服务部署,就像在虚拟机里操作一样。可以写个脚本!比如类似以下步骤:

1. 更换镜像源

2. 修改pip源

3. 安装系统的各个依赖库,比如: gcc,cmake, openssl, zlib, wget等等

4. 安装编译python, redis,nginx,rabbitmq, mysql,supervisor等

5. 写入nginx配置,supervisor配置文件, 配置数据库账号密码权限,数据库初始化等。

6. 安装requirements.txt里的库

7. python代码需要编译成.so文件,用来保护代码和加速运行效率。

8. supervisor启动服务,测试是否正确。

测试正常后,有个问题:启动docker时,自动启动各个服务

我是写一个启动脚本start.sh放在容器内,这个脚本做什么事情

至少需要做三件事

1. 设置所需要的环境变量

2. 以后台方式启动服务,比如redis,mysql,nginx,rabbitmq,web服务等

3. 执行bash: /bin/bash

然后还需要做几个事情:

 

1. 把容器保存成镜像,类似以下命令:

docker commit -a "Wind" -m "web server" -p 容器id webserver:v1

执行完后,使用docker images可以看到一个镜像名为webserver,tag为v1的镜像。

 

2. 把镜像导出成文件 web_server_v1.tar,类似以下命令:

docker save -o web_server_v1.tar webserver:v1

 

导出的镜像怎么使用呢

docker load < web_server_v1.tar

执行完后,使用docker images可以看到一个镜像名为webserver,tag为v1的镜像。

 

运行容器检测,比如start.sh放在容器的/var/www下:

docker run --gpus all --device /dev/snd -it -p 443:443 -d -v /data:/data --name server webserver:v1 /var/www/start.sh

 

进入后查看,redis,nginx,mysql,web服务等都已经启动了。

-p 是把宿主机的端口443映射到容器的443端口

-d 是后台运行容器

-v 是把宿主机的目录挂载到容器

 

自此,web项目交付ok。有不对的地方欢迎交流

最新文章
高清美女写真生成神器大评测,掀起AI绘画新时代!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 宝子们,大家有没有在朋友圈看到过一些看上去超级好看的美女写真?是不是觉得那些照片中的女
上海卓鹰自成立以来,承接了世界各地进口中国的业务(如:美国,加拿大,巴西,韩国,日本,东南亚,俄罗斯,法国,德国,非洲等)进口清关代理服务。卓鹰公司一直以来在不断学习,不断进取,不断进步。争取在成为客
进口国外食品通关思路梳理:一、确认产品类别在18类内海关18类外,是否有做境外生产商注册备案二、确认配料等是否合规,保险的话也可以去做个标签咨询报告三、确认国外是否可以出具产地证等清关单据四、安排物流计划空运|海运五、到港后清
厦门二手房售价多少了,福建厦门二手房50平价格~
厦门二手房售价多少了,福建厦门二手房50平价格~ 厦门二手房房子房价多少钱一平米?厦门二手房投资方向?厦门二手房在售小区一览表!厦门二手房售价多少了,福建厦门二手房50平价格~ 厦门二手房公寓房价多少钱一平米?厦门二手房touzi方向
乌鲁木齐电能表DSSD331/3*1.5(6)A/100VAC/1价格+2025排名一览
乌鲁木齐电能表DSSD331/3*1.5(6)A/100VAC/1价格+2025排名一览 1. 产品概述 - WSK - S-(TH)智能温湿度控制器是一种能够对环境温湿度进行精确监测和控制的设备。它结合了先进的传感器技术和智能控制算法,用于维持环境温湿度在设定的范围内。
NBA官方实力榜:雷霆力压骑士绿军登顶 勇士掉出前十湖人第18名
来源:宇文篮球第1-10名:雷霆(3)、骑士(1)、凯尔特人(2)、独行侠(4)、灰熊(5);第6-10名:火箭(7)、尼克斯(8)、雄鹿(15)、森林狼(12)、热火(11);第11-15名:魔术(9)、掘金(13)、勇士(6)、老鹰(14)、太阳(16
长城vv5保养灯归零方法
汽车开高速车身抖动的原因有不少。
真实有效的赚钱软件APP有没有?盘点赚钱APP排行榜前12名,适合个人发展兼职副业
依托于互联网时代,市面上推出的很多软件都有赚钱的功能,也是真正的做到了让用户足不出户,就能通过手机来赚钱了。那么,手机上赚钱的软件有哪些呢?本期小编就给大家整理了2024年真实有效的赚钱APP,盘点赚钱APP排行榜的前十名,分享给正
必看教程“微信小程序微乐捉鸡麻将外卦神器下载安装免费”其实确实有挂
无需打开直接搜索微信操作使用教程: 1.亲,实际上微信小程序微乐捉鸡麻将外卦神器下载安装免费这款游戏是可以开挂的,确实有挂. 2.在"设置DD辅.助功能DD微信麻.将辅.助工具"里.点击"开启". 3.打开工具.在"设置DD新消息提醒"里.前两个选项"设
感情无对错
对于感情的讨论,似乎永远都缺乏一个明确的答案。每个人都有自己的观点和经验,它们在人们的心中根深蒂固,难以动摇。然而,我们是否应该将道德观念和感情联系起来呢?是否应该对爱情中的遇见和离别做出评判?在我的观点里,我认为感情是没
相关文章
推荐文章
发表评论
0评