一、概要
本次将使用docker搭建一个基于django框架的图书管理系统,本次用到的技术包括:
- docker基本命令;
- 数据卷挂载;
- dockerfile编写;
- docker网络技术;
- django启动命令。
(1)本次技术架构如下:
(2)web站点预览
(3) 前提条件:
宿主机要能连通外网,宿主机安装了docker,本机和宿主机要能互相访问,本机安装mysql客户端。
二、搭建mysql数据库
(1)下载mysql镜像
docker pull mysql
docker images #查看所下载的镜像
(2) 启动一个mysql容器
#启动我们得
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
-- name 容器名字
➜ ~ docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_01 --privileged=true mysql:latest
(3)开启宿主机3306端口
firewall-cmd --state #查看防火墙状态,一般处于开启状态
firewall-cmd --zone=public --add-port=3306/tcp --permanent #开启3306端口,保持对外访问监听状态
systemctl restart firewalld.service ## 开启后重启防火墙
firewall-cmd --reload
firewall-cmd --list-ports ## 查看开启那些端口
(4) 本机登录mysql数据库
(5)新建一个数据库
(6)导入图书管理系统创建数据库脚本
右击数据库名选择运行sql文件
按照向导导入sql文件
三、搭建图书管理系统
(1)宿主机创建工作目录,放入指定文件
(2)编写dockerfile创建图书管理系统镜像
FROM python #下载python的运行环境,当前最新的python3.9,可以指定版本,如:FROM python:3.7
MAINTAINER lyg<1075543143@qq.com>
WORKDIR /home/webapp #容器启动目录
COPY . /home/webapp #将当前文件夹下的文件copy到/home/webapp中,启动容器后默认就含有这些文件
RUN pip install -r softwares.txt -i "https://pypi.doubanio.com/simple/" #下载依赖包
EXPOSE 8080 #对外暴露端口
CMD ["python","./PythonProject/manage.py" ,"runserver", "0.0.0.0:8080"] #启动容器后默认启动django服
(3)创建图书管理系统镜像
docker build -f dockerfile -t library-book-manage-sys:1.0 .
(4)创建自定义的mynet网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
(5)将mysql_01容器加入到mynet网络中
docker network connect mynet mysql_01
docker network inspect 5c5d7fbfda0f
(6)修改图书管理系统中配置
修改链接数据库地址
修改访问图书管理系统域名,一般是,代表任何地址都可访问*
(7) 启动一个图书管理系统容器
docker run -it -v /home/webapp/PythonProject:/home/webapp/PythonProject -p 8080:8080 --name library_manager_systerm --net mynet library-book-manage-sys:1.0 python ./PythonProject/manage.py runserver 0.0.0.0:8080
(8)启动本机浏览器访问
ps:代码下载地址