主机如何使用虚拟机中Docker的Mysql

一、准备工作:

准备一台虚拟机,这里使用的是Ubuntu

二、下载docker

如果是新装的虚拟机建议先更新工具

apt-get update

下载docker

sudo apt install -y docker.io

三、配置阿里加速器(建议配置速度会快点,可以跳过)

在阿里云中有教程:(下面是连接)

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

//操作以阿里云为主
//这是样式
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["这里用自己的"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

四、介绍docker的基础命令

启动docker服务 systemctl start docker   [stop restart]
​
列出镜像:docker images
列出容器: docker ps -a  
         docker container ls -a
删除镜像: docker rmi [image id]
删除容器: docker rm [container id]
镜像搜索; docker search dvwa   //搜索dvwa
下载镜像: docker pull vulnerables/web-dvwa
启动镜像: docker run ...
​

五、步骤

1、启动docker

//启动docker服务
sudo systemctl start docker

        扩展:

//停止
systemctl stop docker
//重启
systemctl restart docker

2、查询mysql

docker search mysql

3、拉取镜像

  • 方法一:默认拉取

​​​​​​​docker pull mysql
  • 方法二:指定版本拉取

sudo docker pull mysql:5.7

4、查看镜像

docker images

5、启动mysql容器(创建镜像实例)

默认启动:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:latest

指定版本启动:

docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:5.7

命令含义:

  • 容器=完整Linux

  • docker run:在docker中启动一个容器实例

  • -d:该容器在后台运行

  • -p 3306:3306:容器与主机映射端口为,主机3306,容器3306

  • --name mysql:容器运行后的名称

  • -e MYSQL_ROOT_PASSWORD=root:设置当前mysql实例的密码为root

  • mysql:5.7:需要运行的容器名称以及版本号

查看mysql进程获取

docker ps -a

6、进入mysql容器—并登陆mysql

docker exec -it mysql bash
//登录mysql命令:
mysql -u root -p
//输入密码:root

7、 配置 MySQL 允许远程访问

这是sql代码

命令:use mysql;

//创建一个账号,用来进行远程访问;
CREATE USER 'root'@'%' IDENTIFIED BY 'my-secret-pw';

//赋予所有权限给之前创建的账号:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; 

//刷新权限
FLUSH PRIVILEGES;


//可以不设置
docker exec -it my-mysql bash vi /etc/mysql/my.cnf

//找到 [mysqld] 部分,添加或修改以下行:

[mysqld] bind-address = 0.0.0.0

//然后重启 MySQL 容器:

docker restart my-mysql

到这里MySQL就相当于下载好了

8、主机下在Navicat

        尝试连接数据库:

        地址、主机名是虚拟机的ip地址

        端口在上面设置的是3306

        账号密码上面都是root

        如有不同按自己的来

六、常见问题

        连不上话,首先使用ping命令进行检查虚拟机和主机互,其次检查虚拟机的防火墙以及端口是否冲突。

检查防火墙设置

sudo ufw disable   # 对于使用 UFW 的系统
sudo systemctl stop firewalld   # 对于使用 firewalld 的系统

扩展

//远程连接不上
在你的 虚拟机上,确认 SSH 服务是否已经启动:
sudo systemctl status ssh

//如果服务未运行,可以启动它:
sudo systemctl start ssh

//确保 SSH 服务在系统启动时自动启动:
sudo systemctl enable ssh


//检查防火墙设置
使用 iptables 作为防火墙工具,默认情况下可能阻止了 SSH 连接。检查并允许端口 22:
sudo iptables -L


//如果发现阻止了端口 22,可以添加规则允许 SSH 连接:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEP

//检查 SSH 配置文件
//确认 SSH 配置文件 /etc/ssh/sshd_config 中没有阻止连接的配置。以下是一些关键配置项:
# 确保 SSH 监听所有接口
ListenAddress 0.0.0.0

# 确保端口是 22
Port 22
修改配置文件后,重启 SSH 服务:
sudo systemctl restart ssh


//确认没有其他服务占用端口
//确保端口 22 没有被其他服务占用。可以使用以下命令检查:
sudo netstat -tuln | grep :22

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值