外网访问docker的mysql_docker安装可外部访问的mysql
进入默认的docker仓库打开网址hub.docker.com ,在搜索栏搜索 mysql进入OFFICIAL IMAGE(官方) mysql 镜像选择需要安装的版本在页面下方 TAGS 里面选择你要安装的版本docker pull :示例(指定需要拉取的版本):docker pull mysql:5.7.27或者(不指定版本,默认为latest)docker pull mysql再或者(指定为.
进入默认的docker仓库
打开网址 hub.docker.com ,在搜索栏搜索 mysql

进入OFFICIAL IMAGE(官方) mysql 镜像

选择需要安装的版本
在页面下方 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 在不中断容器运行的情况下退出容器.
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)