进入默认的docker仓库

打开网址 hub.docker.com ,在搜索栏搜索 mysql

42d1b7b7260212d92ac2853c1b04581e.png

进入OFFICIAL IMAGE(官方) mysql 镜像

f0aade267039ed292fe94d63a650801c.png

选择需要安装的版本

在页面下方 TAGS 里面选择你要安装的版本

docker pull :

示例(指定需要拉取的版本):

docker pull mysql:5.7.27

或者(不指定版本,默认为latest)

docker pull mysql

再或者(指定为最新的)

docker pull mysql:latest

这里可以使用docker images命令来查看刚刚拉取的镜像(列出本地所有镜像)

[root@iZ2zefzbxlqr5ozywhfznuZ /]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

mysql 5.7.27 f6509bac4980 2 weeks ago 373MB

运行拉取的镜像

拉取成功后第一次运行

docker run -d --restart always --privileged=true --name mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:5.7.27

简单解释下

docker run [options "o">]  [ "nb">command]  "o">[arg...]

-d 后台运行容器,并返回容器ID.

--restart always 可以让容器在宿主系统重启后自动重新运行,否则容器不会自动重新运行

--privileged将扩展权限授予此容器,使用该参数,容器内的root拥有真正的root权限。否则,容器内的root只是外部的一个普通用户权限

--name为容器指定一个名称,不指定时该名称默认由Docker自动生成

-v挂载宿主 主机的一个目录 目录不可以为相对路径

-e设置环境变量 , 这里 MYSQL_ROOT_PASSWORD 是设置mysql的密码

-p设置容器的端口映射  第一个参数为宿主 主机的端口,第二个参数为容器内部的端口

mysql:5.7.27这个是要运行的 镜像名称:版本

下面是运行结果:

[root@iZ2zefzbxlqr5ozywhfznuZ /]# docker run -d --restart always --privileged=true --name mysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3307:3306 mysql:5.7.27

f507ac48b40b33e91d7a288d164ac36fdc60043e00e67a5371f77e6d0eb19754

如果你因为一些意外的原因,关闭了这个容器,想要重新运行.

执行命令 docker ps -a显示所有的容器,包括未运行的

[root@iZ2zefzbxlqr5ozywhfznuZ /]# docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

2470b56c91d6 mysql:5.7.27 "docker-entrypoint.s…" 21 minutes ago Exited (0) 5 minutes ago mysql

通过容器ID重新运行容器

执行命令 docker start

[root@iZ2zefzbxlqr5ozywhfznuZ /]# docker start 2470b56c91d6

2470b56c91d6

重新执行命令 docker ps 可以看到刚刚重新运行的容器.

停止一个容器为: docker stop

删除一个容器为:docker rm

重启一个容器为:docker restart

进入容器安装mysql

使用命令 进入刚刚运行的容器

[root@iZ2zefzbxlqr5ozywhfznuZ mysql]# docker exec -it mysql bash

root@f507ac48b40b:/#

这里的 mysql 是刚刚运行时指定的容器名称,如果忘了刚刚指定的名称时可以使用命令docker ps列出所有的容器

最后一个参数 NAMES 就是容器名称

[root@iZ2zefzbxlqr5ozywhfznuZ /]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

f507ac48b40b mysql:5.7.27 "docker-entrypoint.s…" 33 minutes ago Up 33 minutes 0.0.0.0:3307->3306/tcp, 33060/tcp mysql

或者

docker exec -it f507ac48b40b /bin/bash

这里 -it 后面的就是上面命令docker ps 的 CONTAINER ID(容器ID) ,当然也可以用刚刚运行容器时生成的一大串代替

进入 /etc/init.d 目录,启动mysql

root@f507ac48b40b:/# cd /etc/init.d

root@f507ac48b40b:/etc/init.d# ./mysql start

A MySQL Server is already started.

mysql启动成功,进入mysql设置Navicat远程连接数据库(注意 远程登陆需要在安全组中先放通MySQL端口)

mysql -u root -p

获取授权

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '此处输入你设置的密码' WITH GRANT OPTION;

刷新权限

FLUSH PRIVILEGES;

下面就可以愉快的玩耍了(*^_^*)

如果你要修改容器中的一些文件可以使用docker cp 命令

命令:ctrl+p+q 在不中断容器运行的情况下退出容器.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐