docker制作django镜像

django项目建立教程见Django实现算法web服务_Mugo_Moon的博客-CSDN博客

1、生成依赖包文件requirements.txt

(1)全局环境依赖全部生成(或单虚拟环境)

pip freeze > requirements.txt

(2)只生成项目依赖(pipreqs,github地址为:https://github.com/bndr/pipreqs

# pipreqs安装
[root@100-020-gpuserver PersonEval]# pip install pipreqs
# 依赖生成
[root@100-020-gpuserver PersonEval]# pipreqs . --encoding=utf8 --force

2、pip.conf安装依赖包镜像源指定(vim ~/.pip/pip.conf)

[global]
trusted-host= pypi.***.com
index-url=http://pypi.***.com/simple

3、docker生成镜像文件时执行的文本文件(dockerfile)

FROM python:3.7
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY pip.conf ~/.pip/pip.conf
COPY requirements.txt /usr/src/app/
RUN pip install -i http://pypi.***.com/simple --trusted-host pypi.***.com --default-timeout=1000 -r /usr/src/app/requirements.txt
COPY . /usr/src/app
CMD [ "python", "./manage.py", "runserver", "0.0.0.0:8000"]

4、Django项目结构如下

[root@100-020-gpuserver PersonEval]# ll
total 16
drwxr-x--- 2 zhangge zhangge  103 Mar 15 15:05 configfiles
drwxr-x--- 5 zhangge zhangge  169 Mar 15 10:24 configSetAPP
-rw-r----- 1 zhangge zhangge    0 Mar 15 10:26 db.sqlite3
-rw-r----- 1 zhangge zhangge    0 Mar 18 15:17 dockerfile
drwxr-x--- 6 zhangge zhangge  180 Mar 15 15:29 evalScoreAPP
-rwxr-x--x 1 zhangge zhangge  630 Mar 12 14:08 manage.py
-rw------- 1 zhangge zhangge 2231 Mar 18 10:22 nohup.out
drwxr-x--- 3 zhangge zhangge  108 Mar 15 10:22 PersonEval
-rw-r----- 1 zhangge zhangge   82 Mar 18 15:45 pip.conf
-rw-r----- 1 zhangge zhangge   14 Mar 18 15:25 requirements.txt

5、从dockerfile生成镜像文件

# 命令docker build  -t ImageName:TagName dir
#选项
#    -t − 给镜像加一个Tag
#    ImageName − 给镜像起的名称,注意只能使用小写字母
#    TagName − 给镜像的Tag名
#    Dir − Dockerfile所在目录
[root@100-020-gpuserver Djgango_example]# docker build -t personaleval:v0.1 PersonEval

6、使用

# 参数:
#    -d: 后台运行容器,并返回容器ID;
#    -i: 以交互模式运行容器,通常与 -t 同时使用;
#    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
#    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
[root@100-020-gpuserver Djgango_example]# docker run [--restart=always] -d -it -p 8000:8000 personaleval:v0.1

7、删除镜像

#查看镜像
[root@100-020-gpuserver Djgango_example]# docker images
#删除镜像(强制删除--forced [image ID])
[root@100-020-gpuserver Djgango_example]# docker image rm --force 8a87791b408e

8、保存及加载镜像

#保存镜像
[root@100-020-gpuserver Djgango_example]# docker save 2bd27c187f9a -o ./personaleval-save-0322.zip personaleval:v0.1
#加载镜像
[root@65-035-GPU ~]# docker load < personaleval-save-0322.zip
#查看运行的镜像,-a查看包括暂停的镜像
[root@65-035-GPU ~]# docker ps [-a]
#停止容器
[root@65-035-GPU ~]# docker stop 容器id或名字
[root@65-035-GPU ~]# docker kill 容器id或名字
#启动停止的容器
[root@65-035-GPU ~]# docker start 容器id或名字
#重启容器
[root@65-035-GPU ~]# docker restart 容器id或名字
#暂停/恢复容器
[root@65-035-GPU ~]# docker pause/unpause 容器id或名字

9、在容器中开启一个交互模式的终端

[root@100-020-gpuserver PersonEval]# docker exec -i -t  2270deae58ec /bin/bash

9、报错

[root@100-020-gpuserver PersonEval]# docker build -t PersonEval:v0.1 .
invalid argument "PersonEval:v0.1" for "-t, --tag" flag: invalid reference format: repository name must be lowercase
#镜像名小写

 10、更新代码

[root@100-020-gpuserver PersonEval]# docker cp uwsgi.ini 03db575ab395:/opt/algorithm/sow_supply_demand_match/uwsgi.ini

 11、从容器创建新镜像

[root@100-020-gpuserver PersonEval]#  docker commit 03db575ab395 yingzi_sow_supplydemand_match:1.0.1-preprod

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值