环境:ubuntu 20.04 python 3.7 mysql 5.7
从dockerhub pull mysql的官方镜像,并启动
可以直接使用命令
docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:tag
其中–name是启动容器的名字,-v表示挂载的目录(做持久化存储使用,容器中产生的文件保存到挂载的目录中,前面是本机路径后面是容器内路径),-e设置环境变量设置数据库密码(这个密码是root帐号的密码),-d表示在后台托管,-p表示暴露端口容器内的3306对应宿主机的3306,tag表示mysql的版本(我这里用的是5.7)
详细的文档可以点这里
创建项目并连接
我这里使用的web框架是python写的django,版本2.2
其中重点是host,因为mysql是容器启动的,容器会在宿主机中生成1个ip地址,这个host就填写docker的ip地址
查看ip地址linux ifconfigwindowsipconfig
方框中就是的使用docker启动的mysql容器的虚拟ip地址
django mysql的配置
DATABASES = {
"default": {
"ENGINE': 'django.db.backends.mysql",
"NAME": "mysql",
"USER": "root",
"PASSWORD": "12345678",
"HOST": "172.17.0.1",
"PORT": "3306"
}
}