django项目+MySQL+phpmyadmin 全部使用docker容器运行

2 篇文章 0 订阅
2 篇文章 0 订阅

三个容器需要确定先后顺序 ,后期会使用docker-compose在制作一份,此处就是直接命令行展示

第一步:数据库容器

sudo  docker run --name mysql-dragonstack -p 3386:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7

直接运行即可 本地没有mysql:5.7的镜像会自动去网上拉取
创建数据库newcloud:
进入容器创建:

sudo docker exec -it mysql-dragonstack /bin/bash
#进入后键入下面命令
mysql -u root -p
create database newcloud default character set utf8;
grant all on *.* to root@'%' identified by 'xidian320' with grant option;
flush privileges;

第二步:安装phpmyadmin容器,用于可视乎数据库操作

sudo docker run --name phpmyadmin-test -p 8080:80 --link mysql-dragonstack:db -d phpmyadmin/phpmyadmin:latest

此时,就可以直接通过宿主机ip加8080端口 来可视化访问数据库

第三步:配置django项目服务容器

将自己的项目制作成容器镜像,然后运行
附上dockerfile

FROM ubuntu:16.04
MAINTAINER NSS/JJL

COPY	./sources.list /etc/apt/sources.list

RUN     apt-get update \
        && apt-get install python-software-properties -y\
        && apt-get install software-properties-common apt-utils -y\
        && add-apt-repository ppa:deadsnakes/ppa -y\
        && apt-get update

RUN	apt-get install python3.6 -y\
        && rm /usr/bin/python\
        && ln -s /usr/bin/python3.6 /usr/bin/python\
        && rm /usr/bin/python3\
        && ln -s /usr/bin/python3.6 /usr/bin/python3\
        && apt-get install python3-pip -y\
        && pip3 install pip -U\
        && rm /usr/bin/pip3 \
        && ln -s -f /usr/local/bin/pip3 /usr/bin/pip3\
        && ln -s -f /usr/local/bin/pip3 /usr/bin/pip\
        && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

RUN 	apt-get install libvirt-dev -y\
	&& apt-get install python3.6-dev -y\
	&& apt-get install openssh-client openssh-server vim -y\
	&& rm -rf /var/lib/apt/lists/*

COPY    ./DockerCloud /DockerCloud/
RUN	pip install -r /DockerCloud/requirements.txt
COPY    ./base.py /usr/local/lib/python3.6/dist-packages/django/db/backends/mysql/base.py

WORKDIR	/DockerCloud

ENV LANG C.UTF-8

EXPOSE	80

CMD	["python", "manage.py", "runserver", "0:80"]

创建django项目的挂载文件 或者在项目的settings下修改,目的是保证项目能找到所运行的数据库的位置

sudo docker run --name dragonstack -d -p 32769:80 --restart=always --link mysql-dragonstack:db -v /home/slave9/config.ini:/DockerCloud/config.ini -v /home/slave9/TOKE:/DockerCloud/TOKEN nssjjl/dockercloud:v2.2

config.ini文件中记录数据库的信息:

[mysql]
#use in settings.py
host=mysql-dragonstack
port=3306
database=newcloud
user=root
password=password

或者在项目中的settings修改 主要就是host修改为数据库容器名
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘newcloud’,
‘USER’: ‘root’,
‘PASSWORD’: ‘password’,  
‘HOST’: ‘mysql-dragonstack’,
}
}


以上的操作 ,是通过link的方式实现的docker容器通信,如果是跨宿主机上面的操作将失败 ,需使用其他的方式


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值