三个容器需要确定先后顺序 ,后期会使用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’,
}
}