Docker安装MySQL镜像的详细步骤(适合新手小白)

 更新时间:2025年05月11日 14:51:30   作者:杰肥啊  
本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,为读者展示了容器化MySQL的实践过程,需要的朋友可以参考下

前言

自从用了Docker之后,发现装东西是真的香,不用在自己根据下载压缩包一个个的去解压、执行、配置环境等等操作。想要啥直接就用Docker直接即拿即用,灰常的舒服啊。话不多说,正式开干,直接开始安装步骤。以下所有的安装前提是你装了Docker引擎了,不要告诉我连Docker基本环境都没安装。

安装

1.访问docker镜像仓库官网

找到MySQL,这里我是用5.7版本来给大家演示。

https://hub.docker.com/

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.找到对应的版本,复制右侧的命令即可

#将命令放在Linux上敲击回车即可
docker pull mysql:5.7

在这里插入图片描述

3.查看镜像

等拉取好了镜像之后,docker images 查看一下镜像是否拉取成功。

在这里插入图片描述

4.启动简单的MySQL例子

如果只是单纯的想启动MySQL看看,可以直接配置好密码即可

#docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run -p 3306:3306 --name  sample-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

5.启动完整的MySQL例子

有些时候,我们会想把MySQL的存储data文件、存储配置文件挂载出来,所以用以下更全的会相对好一些,这样重启容器也不会造成丢失数据。就是在基础的启动命令上加一些挂载命令

docker run -p 3306:3306 --name  sample-mysql -e MYSQL_ROOT_PASSWORD=123456 -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -d mysql:5.7

/mydata/mysql/log: 自己宿主机上的一个目录路径 映射 容器中的 /var/log/mysql

/mydata/mysql/data:自己宿主机上的一个目录路径 映射 容器中的 /var/lib/mysql

/mydata/mysql/conf:自己宿主机上的一个目录路径 映射 容器中的 /etc/mysql

6.查看运行容器

使用docker ps 查看刚才的容器是否运行起来

在这里插入图片描述

这时候MySQL其实就安装成功啦!

7.授权

可以跳过这一步,直接用步骤8也可以。

#进入MySQL容器中
docker exec -it sample-mysql /bin/bash
#登录MySQL
mysql -uroot -p123456
#授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

8.用Navicat工具连接

在这里插入图片描述

在这里插入图片描述

拓展:docker离线部署前端镜像

镜像打包

1.拉取前端镜像

docker pull <registry-url>/<namespace>/<image-name>:<tag>

2.将镜像打包为tar文件

`docker save -o frontend_版本号.tar frontend:版本号`

加载镜像包

进入离线环境,将tar包加载为镜像

docker load -i frontend_版本号.tar

加载后可以通过docker images 查看镜像id

启动容器

镜像加载后,可以启动该容器:

docker run --name frontend -p 80:80 \  
        -v /etc/nginx/conf.d:/etc/nginx/conf.d:ro \  
        -d [frontend 镜像id]

-p: 映射容器端口到主机端口,格式为<主机端口>:<容器端口> -d: 后台运行 -v: 挂载卷,此处挂载配置文件

容器启动后就可以通过外部ip访问该ng服务了。

nginx配置文件

一般前端镜像会带一个nginx,如果有一些转发的配置项,可以通过挂载卷的方式挂载nginx配置文件:

提前准备好nginx配置文件,上面demo中,将ng配置放到了主机的/etc/nginx/conf.d/default.conf中。

server {
    listen   *:80;

    server_name *.bressanone.fun;

    client_max_body_size 1G;

    location / {
      root   /dist/;
      index  index.html index.htm;
      try_files $uri $uri/ /index.html;
      gzip on;
      gzip_min_length 1k;
      gzip_buffers 4 16k;
      gzip_http_version 1.1;
      gzip_comp_level 9;
      gzip_types text/plain application/x-javascript application/json text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png application/javascript;
      gzip_vary on;
    }
    

    location ^~/api/ {
        proxy_pass http://后端服务/api/;
        proxy_connect_timeout 60s;
        proxy_read_timeout 120s;
        proxy_send_timeout 120s;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto http;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
    }

}

进入容器

可以通过 exec命令进入容器

docker exec -it frontend /bin/bash

以上就是Docker安装MySQL镜像的详细步骤(适合新手小白)的详细内容,更多关于Docker安装MySQL镜像的资料请关注脚本之家其它相关文章!

相关文章

  • MySQL中主键与rowid的使用陷阱总结

    MySQL中主键与rowid的使用陷阱总结

    这篇文章主要给大家总结介绍了关于MySQL中主键与rowid的使用陷阱,文中通过示例代码介绍的非常详细,对大家的学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • mysql远程登录root账户报错1045的解决

    mysql远程登录root账户报错1045的解决

    这篇文章主要介绍了mysql远程登录root账户报错1045的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • MySQL8.x登陆root用户突然提示mysql_native_password的实现

    MySQL8.x登陆root用户突然提示mysql_native_password的实现

    本文主要介绍了MySQL 8.x登陆root用户突然提示mysql_native_password,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • MYSQL必知必会读书笔记第二章之版本更改

    MYSQL必知必会读书笔记第二章之版本更改

    本文是小编日常收集整理些有关mysql必知必会笔记整理第二章,小编感觉非常实用,特此分享到脚本之家平台,供大家参考
    2016-05-05
  • Mysql分组查询取max那条记录其它字段方式

    Mysql分组查询取max那条记录其它字段方式

    这篇文章主要介绍了Mysql分组查询取max那条记录其它字段方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • Unity连接MySQL并读取表格数据的实现代码

    Unity连接MySQL并读取表格数据的实现代码

    本文给大家介绍Unity连接MySQL并读取表格数据的实现代码,实例化的同时调用MySqlConnection,传入参数,这里的传入参数个人认为是CMD里面的直接输入了,string格式直接类似手敲到cmd里面,完整代码参考下本文
    2021-06-06
  • 详解Mysql函数调用优化

    详解Mysql函数调用优化

    这篇文章主要介绍了Mysql 函数调用优化的相关资料,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-04-04
  • Mysql支持的数据类型(列类型总结)

    Mysql支持的数据类型(列类型总结)

    MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述
    2016-12-12
  • Mysql row number()排序函数的用法和注意

    Mysql row number()排序函数的用法和注意

    这篇文章主要介绍了Mysql row number()排序函数的用法和注意 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • MySQL为什么临时表可以重名

    MySQL为什么临时表可以重名

    本文主要介绍了MySQL为什么临时表可以重名,有的人可能会认为,临时表就是内存表,其实是完全不同的,感兴趣的可以一起来了解一下
    2022-03-03

最新评论