三個容器需要确定先後順序 ,後期會使用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 [email protected]'%' 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’,
}
}