本文前提是基于已安装Docker容器引擎。Ubuntu安装docker容器引擎_流沙QS的博客-CSDN博客
本文算是自己学习的随笔记录。
1.拉取mysql镜像
sudo docker search mysql
sudo docker pull mysql #不写版本号 默认拉取最新版本
sudo docker pull mysql:8.0.21 #写版本号,则拉取确定的版本
2.查看拉取的镜像
sudo docker images
3.初始化mysql容器,并启动容器。执行以下命令(亦可以编写为shell脚本)
docker run -it -d \
--name mysql8 \
--privileged=true \
--restart=always \
-p 13306:3306 \
-v /home/geng/soft/mysql8/data:/var/lib/mysql \
-v /home/geng/soft/mysql8/config:/etc/mysql/conf.d \
-v /home/geng/soft/mysql8/logs:/logs \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
mysql \
--lower_case_table_names=1
--character-set-server=utf8mb4
--collation-server=utf8_general_ci
说明:
--name mysql8
:给容器命名--privileged=true
:增加特殊权限,例如安全方面的--restart=always
:服务器启动时,自启动-p 3310:3306
:端口映射,第一个 3310 是映射出去的端口,第二个 3306 是这个容器的端口- 远程访问:IP 地址:3310 即可,如果是本地虚拟机就是 虚拟机 IP:3310
注意
:服务器上记得打开安全组,虚拟机上则记得注意防火墙-v /home/mysql8/data:/var/lib/mysql
:文件挂载, 前为宿主机的目录位置,后为容器内文件对应位置-e MYSQL_ROOT_PASSWORD=123456
:环境变量设置,此处是设置 ROOT 用户登录密码-e TZ=Asia/Shanghai mysql
:此处是设置 MySQL 的时区,请注意这点,有时候你可能会发现你的服务器时区和你当前的电脑的时区是不一样的,这很有可能有一些隐藏问题噢。此处的mysql
为镜像名。--lower_case_table_names=1
:让表名忽略大小写- -it 表示 与容器进行交互式启动
- -d 表示后台启动
- 参数顺序一定要对,--lower_case_table_names=1要加在镜像名后面,镜像名前面是参数,后面是mysql配置
- 指定数据库编码集排序规则:
- --character-set-server=utf8mb4
--collation-server=utf8_general_ci
4.检查启动情况
4.1查看启动容器实例
sudo docker ps # 查看所有正在运行的容器
sudo docker ps -a #-a 表示查看所有容器 包括未删除的历史容器
sudo docker ps
4.2查看日志
sudo docker logs [容器名|容器id] #查看容器的执行日志
docker logs [容器名|容器id] -f # -f:查看实时日志信息
-f / --follow 跟踪输出日志 --since 显示自时间戳(例如2013-01-02T13:23:37Z)或相对(例如42分钟为42m)开始的日志 -- details 显示提供给日志的额外详细信息 -n, --tail 从日志末尾开始显示的行数(默认为"all") -t,-- timestamps 显示时间戳 --until 显示时间戳(如2013-01-02T13:23:37Z)或相对(如42分钟42m)之前的日志
sudo docker logs mysql8
5.容器交互
docker exec -it [容器名|容器id] bash
5.1创建mysql用户,远程授权登录
5.1.0容器交互进入mysql命令行
docker exec -it mysql8 bash
5.1.1登录mysql,创建并授权用户
mysql -uroot -p
create user user0@'%' identified with mysql_native_password by '123456';
grant all privileges on db0.* to use0@'%' with grant option;
flush privileges;
接下来就可以使用 mysql用户user0,密码:123456,来登录端口号为13306的mysql数据库了。
注:几个常用的命令
启动docker容器实例:sudo docker start[容器id|容器名]
停止docker容器实例:sudo docker stop [容器id|容器名]
重启docker容器实例:sudo docker restart[容器id|容器名]
删除docker容器实例(慎用):sudo docker rm [容器id|容器名]