一、准备工作
1.镜像拉取
# 查看自己的镜像
docker images
# 拉取项目需要的镜像
docker pull python:3.6
docker pull mysql:5.7
2.查看网络
docker network ls # 查看自己的docker网络
二、测试网络
1.启动mysql
docker run --name mysql --privileged=true -p 3307:3306 -v /data/mysql/datadir:/var/lib/mysql -v /data/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d --network blog mysql:5.7
--name:指定容器名
--p:映射宿主主机端口 因为本机有了一个3306端口 所以我改成了3307
-v:挂载宿主目录到容器目录
-e:设置环境变量,此处指定root密码
-d:后台运行容器
--privileged=true 防止挂载数据卷出现权限问题
--network 指定网络名称空间
2.进入mysql创建blog01数据库
docker exec -it mysql102 bash # 进入容器执行bash
mysql -uroot -p******** # 登录
mysql> create database blog01 default charset utf8; #创建blog01数据库
---------------------------
Query OK, 1 row affected (0.00 sec)
3.启动python
docker run -dit --network host --name python python:3.6 /bin/bash
# 这里我没有指定映射端口,最后加
注:部署的时候出现连接不上数据库情况
其中blog是我新创建的,可以ping百度,但是ping数据库就没有反应
解决方法:最后用host网络
4.查看启动的容器并测试网络
docker inspect [容器的名字]
可以查看容器ip地址
测试ping数据库是否可以连接
5.进入python2容器
docker exec -it python2 /bin/bash
(1)把文件拷贝到容器上
docker cp /root/django_blog python2:home/blog
docker cp [宿主机文件目录] [容器名]:[容器内文件目录]
(2)安装项目所需的模块
[root@iZbp1j2liju58h1ni09d2wZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
946f5b21fe91 python:3.6 "/bin/bash" 15 hours ago Up 15 hours python2
880adbf44d1d centos:7.9.2009 "/bin/bash" 5 months ago Up 5 months 0.0.0.0:8000->8000/tcp centos02
e9b70c837b93 mysql:5.7.32 "docker-entrypoint.s…" 5 months ago Up 5 months 0.0.0.0:3306->3306/tcp, 33060/tcp mysql102
[root@iZbp1j2liju58h1ni09d2wZ ~]# docker exec -it python2 /bin/bash
root@iZbp1j2liju58h1ni09d2wZ:/# ls
bin dev home lib64 mnt proc run srv tmp var
boot etc lib media opt root sbin sys usr
root@iZbp1j2liju58h1ni09d2wZ:/# cd home/blog
root@iZbp1j2liju58h1ni09d2wZ:/home/blog# ls
1.txt README.md manage.py pip static
Django_Blog blog media requirements.txt templates
root@iZbp1j2liju58h1ni09d2wZ:/home/blog# pip install -r requirements.txt -i https://pypi.doubanio.com/simple # 安装项目依赖库
(3)安装docker内部组件vim
在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示:未找到指令
# 我们需要
apt-get update
#这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
(4)迁移数据库
注:在blog目录内敲命令
python manage.py makemigrations
python manage.py migrate
(5)放在80端口跑一下
python manage.py runserver 0.0.0.0:80