废话不多说
没有安装docker 的可以去我的文章里面找
- 拉取mysql
docker pull mysql:5.7 # 拉取 mysql 5.7
docker pull mysql # 拉取最新版mysql镜像
我拉取的是 5.7
2.检查是否拉取成功
sudo docker images
# 基于root 用户操作的,所以接下来的操作就把sudo 去掉了
3.建立目录映射
sudo docker run -p 3306:3306 --name mysql
-v /usr/local/docker/mysql/conf:/etc/mysql
-v /usr/local/docker/mysql/logs:/var/log/mysql
-v /usr/local/docker/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
## 在docker上部署mysql时,mysql的默认字符集是latin1,这样如果日后有中文会出现异常,不能存储等,因为latin1是不支持中文的。
- 启动
sudo docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
# 命令解释
–name:容器名,此处命名为mysql
-e:配置信息,此处配置mysql的root用户的登陆密码
-p:端口映射,此处映射 主机3306端口 到 容器的3306端口
-d:后台运行容器,保证在退出终端后容器继续运行
5.检查容器是否正确运行
docker container ls
或者可以 查看容器
docker ps 只能查看存活的
docker ps -a 所以的容器都要可以查到到
顺便多介绍个命令 容器的移除
docker rm xxx
6. 防火墙
firewall-cmd --add-port=3306/tcp --permanent
#重启防火墙
systemctl restart firewalld
7.连接mysql
进入docker本地连接mysql客户端
docker exec -it mysql bash
mysql -uroot -p123456
使用远程连接软件时要注意一个问题
我们在创建容器的时候已经将容器的3306端口和主机的3306端口映射到一起,所以我们应该访问:
prot:3306
user:root
password:123456
需要进入docker本地客户端设置远程访问账号
docker exec -it mysql bash
mysql -uroot -p123456
原理:
8.查看刚刚设置字符集
show variables like '%character%';
docker扩展与补充
查看容器:
docker ps -a
进入容器:
docker exec -it 容器id bash
例如:docker exec -it 9400df9b1e54 bash
重启容器:
docker restart 容器id
例如:docker restart 9400df9b1e54
停止容器:
docker stop 容器id
例如:docker stop 9400df9b1e54
删除容器:
docker rm 容器id
例如:docker rm 9400df9b1e54(镜像ID)