# docker实战二:运行mysql容器
适用场景:
- 简化编程环境安装
- 版本控制
由于种种原因,安装这类型软件的时候比较麻烦,容器出问题。
因此直接使用Docker官方镜像比较好。
并且提供了多个版本,可以运行多个容器跑多个版本的服务。
# 拉取镜像
在此之前我们可以使用docker search mysql查看。
小tips
后面OFFICIAL OK说明是官方的镜像。都是开源的!
类似corcleci/mysql都是其他用户个人定制的镜像。谨慎使用

查看具体的版本需要在官网上进行查看。
由于网站在国外,电脑访问非常慢,所以我用手机翻墙演示一下。
docker pull mysql:5.7
# 创建mysql容器并后台运行服务
第一步骤也可省略。直接运行下面的命令。
-e 表示指定环境变量 用于设置登录密码。否则容器无法正常运行。
docker run -d --name=mymysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD="123456" mysql:5.7
# 进入容器创建一个数据库hello
docker exec -i -t mymysql bash
mysql -uroot -p123456
create database hello;
# 测试
使用gorm进行测试
package main
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type Student struct {
Name string
Age int
}
func main() {
dsn := "root:123456@tcp(localhost:33060)/hello?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
fmt.Println(err)
}
fmt.Println("连接成功")
err = db.AutoMigrate(&Student{})
if err != nil {
fmt.Println("创建失败")
return
}
db.Create(&Student{
Name : "nj",
Age : 21,
})
var stu Student
db.First(&stu, "name = ?", "nj")
fmt.Println(stu.Age)
}
# 备份
mysqldump -u root -p123456 --host 127.0.0.1 --port 3306 --databases hello > hello.sql