栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

Docker18.02 + Django2.0 + MySQL + phpmyadmin

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker18.02 + Django2.0 + MySQL + phpmyadmin

利用Docker创建 Django 2.0 + MySQL + phpmyadmin 的开发环境

新建一个文件夹 如 django-web02Dockerfile
FROM python:3 
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
requirements.txt
Django
PyMySQL
pytz
docker-compose.yml
version: "3.6"services:
    db:
        image: mysql
        ports:
            - "3306:3306"
        environment: 
            - MYSQL_ROOT_PASSWORD=123456
            - MYSQL_USER=admin
            - MYSQL_PASSWORD=123456
            - MYSQL_DATAbase=testdb
    web:
        build: .        command: python manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/code
        ports:
            - "8000:8000"
        depends_on:
            - db
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        environment:
            - PMA_ARBITRARY=1
        restart: always
        ports: 
            - "8082:80"
        volumes:
            - /sessions
目录结构
uic@ubuntu:~/software/django-web02$ tree
django-web02
├── docker-compose.yml
├── Dockerfile
└── requirements.txt
docker-compose build
uic@ubuntu:~/software/django-web02$ docker-compose build
db uses an image, skipping
Building web
Step 1/7 : FROM python:3
 ---> 500d0dca385d
Step 2/7 : ENV PYTHONUNBUFFERED 1
 ---> Using cache
 ---> 36c33c71b7b9
Step 3/7 : RUN mkdir /code
 ---> Using cache
 ---> 9cbc7c98d009
Step 4/7 : WORKDIR /code
 ---> Using cache
 ---> 10f5a9b82917
Step 5/7 : ADD requirements.txt /code/
 ---> Using cache
 ---> db215e28a822
Step 6/7 : RUN pip install -r requirements.txt
 ---> Using cache
 ---> f4562d485068
Step 7/7 : ADD . /code/
 ---> Using cache
 ---> 4a223f68b872
docker-compose run 命令启动一个 Django 应用
uic@ubuntu:~/software/django-web02$ docker-compose run web django-admin.py startproject django_example .
Starting djangoweb02_db_1 ... done
uic@ubuntu:~/software/django-web02$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES05864082566d        mysql               "docker-entrypoint.s…"   2 minutes ago       Up 21 seconds       0.0.0.0:3306->3306/tcp   djangoweb02_db_1
uic@ubuntu:~/software/django-web02$
目录结构
.
├── django_example│   ├── __init__.py│   ├── settings.py│   ├── urls.py│   └── wsgi.py├── docker-compose.yml├── Dockerfile├── manage.py└── requirements.txt
新创建的 django_example 文件夹是 root, 需要 更改  的目录权限
uic@ubuntu:~/software/django-web02$ ll
total 28drwxrwxr-x 3 uic  uic  4096 Mar 23 05:15 ./
drwxrwxr-x 7 uic  uic  4096 Mar 23 01:38 ../
drwxr-xr-x 2 root root 4096 Mar 23 05:15 django_example/
-rw-rw-r-- 1 uic  uic   700 Mar 23 03:23 docker-compose.yml
-rw-rw-r-- 1 uic  uic   150 Mar 23 03:16 Dockerfile
-rwxr-xr-x 1 root root  546 Mar 23 05:15 manage.py*
-rw-rw-r-- 1 uic  uic    23 Mar 23 03:16 requirements.txt

uic@ubuntu:~/software/django-web02$ sudo chown -R $USER:$USER django_example/
uic@ubuntu:~/software/django-web02$ ll
total 28drwxrwxr-x 3 uic  uic  4096 Mar 23 05:15 ./
drwxrwxr-x 7 uic  uic  4096 Mar 23 01:38 ../
drwxr-xr-x 2 uic  uic  4096 Mar 23 05:15 django_example/
-rw-rw-r-- 1 uic  uic   700 Mar 23 03:23 docker-compose.yml
-rw-rw-r-- 1 uic  uic   150 Mar 23 03:16 Dockerfile
-rwxr-xr-x 1 root root  546 Mar 23 05:15 manage.py*
-rw-rw-r-- 1 uic  uic    23 Mar 23 03:16 requirements.txt
docker-compose up -d 启动
uic@ubuntu:~/software/django-web02$ docker-compose up -d
djangoweb02_db_1 is up-to-date
Creating djangoweb02_phpmyadmin_1 ... done
Creating djangoweb02_web_1        ... done
uic@ubuntu:~/software/django-web02$ docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                            NAMES66151fe2bc0b        phpmyadmin/phpmyadmin   "/run.sh phpmyadmin"     5 seconds ago       Up 4 seconds        9000/tcp, 0.0.0.0:8082->80/tcp   djangoweb02_phpmyadmin_1
bee5497883fa        djangoweb02_web         "python manage.py ru…"   5 seconds ago       Up 4 seconds        0.0.0.0:8000->8000/tcp           djangoweb02_web_105864082566d        mysql                   "docker-entrypoint.s…"   14 minutes ago      Up 12 minutes       0.0.0.0:3306->3306/tcp           djangoweb02_db_1
uic@ubuntu:~/software/django-web02$
查看页面

phpmyadmin


phpmyadmin.png

django.png

需要在 django 中的  settings.py 设置,允许任意 host 访问

ALLOWED_HOSTS = ["*"]

django2.0.png


建立 一个  test_app
uic@ubuntu:~/software/django-web02$ docker-compose run web python manage.py
startapp test_app
Starting djangoweb02_db_1 ... done
目录结构
.
├── db.sqlite3├── django_example│   ├── __init__.py│   ├── __pycache__│   │   ├── __init__.cpython-36.pyc│   │   ├── settings.cpython-36.pyc│   │   ├── urls.cpython-36.pyc│   │   └── wsgi.cpython-36.pyc│   ├── settings.py│   ├── urls.py│   └── wsgi.py├── docker-compose.yml├── Dockerfile├── manage.py├── requirements.txt└── test_app
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── __pycache__
    │   ├── __init__.cpython-36.pyc
    │   └── views.cpython-36.pyc
    ├── tests.py
    └── views.py

在 django_example/urls.py 添加

urlpatterns += [
    path('app/',views.app,name='app'),
]

在 test_app/views.py 添加

from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.def app(request):
    response_html = "Hello Django 2.0."
    
    return HttpResponse(response_html)

查看结果


test_app.png



作者:2010jing
链接:https://www.jianshu.com/p/0fe67286cafc

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/227606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号