docker django部署

本文介绍了两种部署Django应用的方法:一是使用Dockerfile进行构建;二是直接通过Docker命令行部署。文中详细展示了每一步操作及命令,并验证了部署后的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://hub.docker.com/_/django/

(一)dockerfile方法

FROM python:3.4

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        postgresql-client \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .

EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

(二)不用dockerfile方法:

$ docker run --name some-django-app -v "$PWD":/usr/src/app -w /usr/src/app -p 8000:8000  \
-d django bash -c "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:8000" 


在项目的根目录下执行以上命令即可
[root@centos4 mysite]# ls
blog  db.sqlite3  manage.py  mysite  requirements.txt  sftp-config.json  static  uwsgibk  uwsgi.ini
[root@centos4 mysite]#


[root@centos4 mysite]# docker exec -it 236 /bin/bash
root@2361f1355d70:/usr/src/app# ls
blog  db.sqlite3  manage.py  mysite  requirements.txt  sftp-config.json  static  uwsgi.ini  uwsgibk

root@2361f1355d70:/usr/src/app#


-v "$PWD":/usr/src/app

可以看到宿主机中项目上下能内容已经挂载到容器内的/usr/src/app中了


pip install -r requirements.txt

root@2361f1355d70:/usr/src/app# pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
Django (1.8.6)
django-bootstrap3 (9.1.0)
django-ckeditor (5.4.0)
django-js-asset (0.1.1)
mysqlclient (1.3.9)
olefile (0.44)
Pillow (4.3.0)
pip (9.0.1)
psutil (5.4.2)
psycopg2 (2.6.2)
setuptools (20.10.1)
root@2361f1355d70:/usr/src/app#


[root@centos4 mysite]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
2361f1355d70        django              "bash -c 'pip install"   40 minutes ago      Up 26 seconds       0.0.0.0:8000->8000/tcp   some-django-app

d6bb2b0cf809        registry            "/entrypoint.sh /etc/"   9 days ago          Up About an hour    0.0.0.0:5000->5000/tcp   registry


[root@centos4 ~]# docker history eb40dcf64078
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
eb40dcf64078        14 months ago       /bin/sh -c pip install mysqlclient psycopg2 d   37.01 MB            
<missing>           14 months ago       /bin/sh -c #(nop)  ENV DJANGO_VERSION=1.10.4    0 B                 
<missing>           14 months ago       /bin/sh -c apt-get update && apt-get install    204.7 MB            
<missing>           14 months ago       /bin/sh -c #(nop)  CMD ["python3"]              0 B                 
<missing>           14 months ago       /bin/sh -c cd /usr/local/bin  && { [ -e easy_   0 B                 
<missing>           14 months ago       /bin/sh -c set -ex  && buildDeps='   gcc   li   63.93 MB            
<missing>           14 months ago       /bin/sh -c #(nop)  ENV PYTHON_PIP_VERSION=9.0   0 B                 
<missing>           14 months ago       /bin/sh -c #(nop)  ENV PYTHON_VERSION=3.4.5     0 B                 
<missing>           14 months ago       /bin/sh -c #(nop)  ENV GPG_KEY=97FC712E4C024B   0 B                 
<missing>           14 months ago       /bin/sh -c apt-get update && apt-get install    7.425 MB            
<missing>           14 months ago       /bin/sh -c #(nop)  ENV LANG=C.UTF-8             0 B                 
<missing>           14 months ago       /bin/sh -c #(nop)  ENV PATH=/usr/local/bin:/u   0 B                 
<missing>           14 months ago       /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B                 

<missing>           14 months ago       /bin/sh -c #(nop) ADD file:1d214d2782eaccc743   123 MB  

 

[root@centos4 ~]# docker logs 2361f1355d70 --tail 10
  Running setup.py install for psutil: started
    Running setup.py install for psutil: finished with status 'done'
Successfully installed Django-1.8.6 Pillow-4.3.0 django-bootstrap3-9.1.0 django-ckeditor-5.4.0 django-js-asset-0.1.1 olefile-0.44 psutil-5.4.2
Requirement already satisfied: Django==1.8.6 in /usr/local/lib/python3.4/site-packages (from -r requirements.txt (line 1))
Requirement already satisfied: django-bootstrap3==9.1.0 in /usr/local/lib/python3.4/site-packages (from -r requirements.txt (line 2))
Requirement already satisfied: django-ckeditor==5.4.0 in /usr/local/lib/python3.4/site-packages (from -r requirements.txt (line 3))
Requirement already satisfied: django-js-asset==0.1.1 in /usr/local/lib/python3.4/site-packages (from -r requirements.txt (line 4))
Requirement already satisfied: olefile==0.44 in /usr/local/lib/python3.4/site-packages (from -r requirements.txt (line 5))
Requirement already satisfied: Pillow==4.3.0 in /usr/local/lib/python3.4/site-packages (from -r requirements.txt (line 6))
Requirement already satisfied: psutil==5.4.2 in /usr/local/lib/python3.4/site-packages (from -r requirements.txt (line 7))
[root@centos4 ~]#

[root@centos4 mysite]# netstat -anp | grep 8000
tcp6       0      0 :::8000                 :::*                    LISTEN      17211/docker-proxy-
[root@centos4 mysite]#


docker stop 2361f1355d70后无法访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值