首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从宿主机访问运行在docker容器中的mysql?

要从宿主机访问运行在 Docker 容器中的 MySQL 数据库,你需要确保以下几点:

  1. MySQL 容器正在运行
  2. MySQL 容器的端口已映射到宿主机的端口
  3. MySQL 用户允许从外部主机连接

以下是详细的步骤:

1. 启动 MySQL 容器并映射端口

假设你已经有一个 MySQL Docker 镜像,你可以使用以下命令启动 MySQL 容器,并将容器的 MySQL 端口(默认是 3306)映射到宿主机的端口。

代码语言:javascript
复制
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:latest

在这个命令中:

  • --name mysql-container:为容器指定一个名称。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 MySQL root 用户的密码。
  • -p 3306:3306:将容器的 3306 端口映射到宿主机的 3306 端口。
  • -d mysql:latest:在后台运行 MySQL 容器,使用最新的 MySQL 镜像。

2. 检查 MySQL 容器状态

确保 MySQL 容器正在运行:

代码语言:javascript
复制
docker ps

你应该能看到类似以下的输出:

代码语言:javascript
复制
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                    NAMES
xxxxxxxxxxxx   mysql:latest   "docker-entrypoint.s…"   xx minutes ago   Up xx minutes   0.0.0.0:3306->3306/tcp   mysql-container

3. 配置 MySQL 用户权限

默认情况下,MySQL root 用户只能从 localhost 连接。你需要创建一个允许从外部主机连接的用户,或者修改 root 用户的权限。

进入 MySQL 容器

代码语言:javascript
复制
docker exec -it mysql-container mysql -u root -p

输入你在启动容器时设置的 root 密码。

创建一个允许外部连接的用户

代码语言:javascript
复制
CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

或者,修改 root 用户的权限

代码语言:javascript
复制
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4. 从宿主机连接到 MySQL 容器

现在,你可以从宿主机使用 MySQL 客户端工具(如 mysql 命令行工具、MySQL Workbench 或其他数据库管理工具)连接到运行在 Docker 容器中的 MySQL。

使用命令行工具连接

代码语言:javascript
复制
mysql -h 127.0.0.1 -P 3306 -u youruser -p

在这个命令中:

  • -h 127.0.0.1:指定宿主机的 IP 地址(本地)。
  • -P 3306:指定端口号。
  • -u youruser:指定 MySQL 用户名。
  • -p:提示输入密码。

5. 防火墙和网络配置

确保宿主机的防火墙允许外部连接到 3306 端口。如果你在云服务器上运行 Docker 容器,还需要确保云服务器的安全组或防火墙规则允许外部访问 3306 端口。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

容器化网页应用

开发人员开发和测试时在个人电脑上使用的容器可以无缝运行在如虚拟机,云等其他正式的运维环境下。 ? 使用容器,你可以灵活的部署你的网页应用。...你可以把你的应用运行在不同的容器上,比如让MySQL,Apache和WordPress各运行在一个容器上,也可以把这三个应用运行在一个容器上。...如果你想要跑一个WordPress的应用,你可以从Docker Hub上下载镜像,然后简单的跑如下命令就可以了 docker run –name some-wordpress –link some-mysql...:mysql -d wordpress 对本地开发的强大支持 作为一个网页程序员,你很有可能是在自己的电脑上开发代码,然后再发布到运维系统上。...因为每个容器只能访问其他容器显式暴露出来的端口和文件。 而且容器可以再更高层次上对于系统上存储什么数据,安装什么软件进行控制。一些运行在一个容器上可疑脚本是不会影响其他容器的。

1.1K60
  • Docker(一):Docker入门教程

    运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。...Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。 Docker 容器很轻很快!...Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。...Docker container:容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。...镜像就相当于打包好的版本,镜像启动之后运行在容器中,仓库就是装存储镜像的地方。

    1.3K50

    Docker三十分钟快速入门(下)

    这就说明了,同一个主机上的各个容器之间是相互隔离的,也就是他们直接不能直接相互访问,那我们怎么解决这个问题呢?...那我们上面已经通过link方式实现了todo容器可以访问相同主机的mysql容器,那么这种方式如何实现的呢? 我们查看todo容器的/etc/hosts文件就会明白了,如下: ?...可以看出link的工作原理是在todo的hosts文件中写入mysql容器的地址信息 使用容器连接的好处 运行在同一主机的独立容器间可以相互通讯 容器间建立一个安全通讯隧道而不需要暴露容器的任何端口...如何选择COE工具 是否支持企业DevOps框架和编排 是否提供丰富的API 集群支持主机数量大小 容器运行在什么平台?物理机、私有云还是公有云?...如何在docker-compose.yml文件中自定义docker网络,如何给其中定义的service指定使用自定义的网络?如何在产线运行容器化服务?如何选择COE工具?

    1.2K20

    Docker技术( 容器虚拟化技术 )

    将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的, 这就实现了跨平台、跨服务器。...工作原理 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。...,用-v 主机目录:容器目录这种方法不能够直接在Dockerfile中实现。...docker ps docker inspect 容器ID 7.测试添加卷和主机是否互通有无 在容器中创建文件, 看看主机中是否创建对应的文件 注意: Docker挂载主机目录(第3步)Docker...再基于刚提交的镜像运行一个新容器 执行dockerfile 中的下一条执行, 直至所有指令都完成 从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段

    2.9K23

    整理了一份 Docker系统知识,从安装到熟练操作看这篇就够

    1、我们为什么要使用Docker 当我们在工作中,一款产品从开发设计到上线运行,其中需要开发人员和运维工程师,开发人员负责代码编写,开发产品,运维工程师需要测试环境,产品部署。这之间就会有分歧。...二、Docker安装 1、前提说明 目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS-7 上,要求系统为64位、系统内核版本为3.10 以上。...build Dockerfile 4、注意如果Docker挂载主机目录Docker访问出现cannot open directory .: Permissiondenied。...上面查找mysql镜像 docker search mysql (2)从docker hub上(阿里云加速器)拉取mysql镜像到本地 docker pull mysql (3)使用mysql镜像创建容器...#将主机/IronmanJay/mysql目录下的 logs 目录挂载到容器的 /logs -v /IronmanJay/mysql/data:/var/lib/mysql :#将主机/IronmanJay

    42610

    高中生也能读懂的Docker入门教程

    为何要采用 Docker?如何使用 Docker? 本文,就针对上述提到的问题,来简单介绍下 Docker。 什么是 Docker Docker 是开源的应用容器引擎。...容器的架构 ? 容器包括应用程序及其所有的依赖,但与其他容器共享内核。它们以独立的用户空间进程形式运行在主机操作系统上。...更加可控:Docker 使得开发人员保存从基础设施到应用的代码,帮助 IT 运维人管理拥有标准的、安全的、可扩展的操作环境。...Docker 中国官方镜像加速可通过 registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。...输出这段提示以后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。

    1K70

    为什么要使用Docker?

    您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。   请问?您要如何确保应用能够在这些环境中运行和通过质量检测?...5.2 容器(container) 1、从面向对象角度   Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例...每个容器都是相互隔离的、保证安全的平台 2、从镜像容器角度 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。...国内的公开仓库包括阿里云 、网易云等 6、Docker工作原理   Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问...,守护进程从客户端接受命令并管理运行在主机上的容器。

    51011

    【教程分享】一键部署MySQL,轻松搞定Docker安装和配置!

    ; 3 启动MySQL # 将容器的 3306 端口映射到主机的 3306 端口,这样就可以通过主机的 IP 地址和端口号访问 MySQL 服务。...8.2 数据共享 若把容器实例删了,镜像也移除了,MySQL库表数据还在吗? 容器实例是由 Docker 镜像创建的运行实例,而容器内的 MySQL 是运行在该容器实例中的 MySQL 数据库服务。...因此,当您在 Docker 容器中运行 MySQL 时,MySQL 数据库服务是运行在该容器实例的隔离环境中的,与其他容器实例和主机上的其他进程相互隔离。...因为宿主机上的目录只能被一个容器实例访问和写入,无法实现多个容器实例之间的数据共享。 宿主机上的目录只能被一个容器实例访问和写入,是因为同一时间只有一个进程(或容器实例)可以占用该目录。...当你将宿主机上的目录挂载到容器中时,该目录在容器中的访问权限与在宿主机上的访问权限是一致的。若多个容器实例同时访问该目录,就会发生冲突,导致数据的不一致性和损坏。

    6.1K30

    docker基础安装使用

    ⼤多数Docker容器只需要不到1秒中即可启动。由于去除了管理程序的开销,Docker容器拥有很⾼的性能,同时同⼀台宿主机中也可以运⾏更多的容器,使⽤户尽可能的充分利⽤系统资源。...(2)职责的逻辑分类 使⽤Docker,开发⼈员只需要关⼼容器中运⾏的应⽤程序,⽽运维⼈员只需要关⼼如何管理容器。...你可以在同⼀台宿主机上运⾏Docker守护进程和客户端,也可以从本地的Docker客户端连接到运⾏在另⼀台宿主机上的远程Docker守护进程。...Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像 Docker应用运行在容器中,使用沙箱机制,相互隔离 Docker如何解决开发、测试、生产环境有差异的问题?...这些镜像都是存储在Docker宿主机的/var/lib/docker⽬录下 1.2 搜索镜像 从网路中搜索镜像 docker search 镜像名称 docker search mysql NAME:

    77951

    阿里华为等大厂都这么做容器调度和服务编排

    镜像仓库 解决Docker镜像存储和访问 资源调度 决定Docker镜像可分发到哪些机器 这些解决后,就该考虑如何在集群中创建容器,即容器调度。...若集群机器规模上百台,要发布的服务上百个,就不能靠人肉运维,需要有专门容器调度系统,所以很多基于Docker的容器调度系统,比如Swarm、Mesos。Kubernetes。 它们能解决哪些问题呢?...好处:可以使每台主机的负载都比较平均,而且如果有一台主机有故障,受影响的容器也最少 binpack策略 正好相反,会选择一个资源使用最多的节点,好让容器尽可能的运行在少数机器上,节省资源的同时也避免了主机使用资源的碎片化...每次创建容器时,直接从尚未创建过容器的主机中,随机选择一台。...比如要实现一个Web项目,要创建: Web容器比如Tomcat容器 数据库容器比如MySQL容器 负载均衡容器比如Nginx容器等 就可以通过docker-compose.yaml配置这个Web项目里包含的三个容器的创建

    38820

    分布式部署:第三章:Docker、MySQL、tomcat、Nginx、Redis部署

    Xen server Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机...因此,容器虚拟化也被称为“操作系统级虚拟化”,容器技术可以让多个独立的用户空间运行在同一台宿主机上。 由于“客居”于操作系统,容器只能运行与底层宿主机相同或者相似的操作系统,这看起来并不是非常灵活。...**( **2 )职责的逻辑分类 使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如何管理容器。...从而降低那种“开发时一切正常,肯定是运维的问题(测试环境都是正常的,上线后出了问题就归结为肯定是运维的问题)” **( **3 )快速高效的开发生命周期 Docker的目标之一就是缩短代码从开发、测试到部署...你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。

    1.1K10

    Java核心知识点整理大全27-笔记(已完结)

    概念 Docker 的出现一定是因为目前的后端在开发和运维阶段确实需要一种虚拟化技术解决开发环境和 生产环境环境一致的问题,通过 Docker 我们可以将程序运行的环境也纳入到版本控制中,排除因 为环境造成不同运行结果的可能...在日常使用 Linux 或者 macOS 时,我们并没有运行多个完全分离的服务器的 需要,但是如果我们在服务器上启动了多个服务,这些服务其实会相互影响的,每一个服务都能 看到其他服务的进程,也可以访问宿主机器上的任意文件...,这是很多时候我们都不愿意看到的, 我们更希望运行在同一台机器上的不同服务能做到完全隔离,就像运行在多台不同的机器上一样。...Libnetwork 与网络隔离 如果 Docker 的容器通过 Linux 的命名空间完成了与宿主机进程的网络隔离,但是却有没有办法通过宿 主机的网络与整个互联网相连,就会产生很多限制,所以 Docker...在默认情况下,每一个容器在创建时都会创建一对虚拟网卡,两个虚拟网卡组成了数据的通道,其中一个会放在创建的 容器中,会加入到名为 docker0 网桥中。 30.1.4.5.

    13410

    高中生也能读懂的Docker入门教程

    为何要采用 Docker?如何使用 Docker? 本文,就针对上述提到的问题,来简单介绍下 Docker。 什么是 Docker Docker 是开源的应用容器引擎。...容器的架构 容器包括应用程序及其所有的依赖,但与其他容器共享内核。它们以独立的用户空间进程形式运行在主机操作系统上。...更加可控:Docker 使得开发人员保存从基础设施到应用的代码,帮助 IT 运维人管理拥有标准的、安全的、可扩展的操作环境。...Docker 中国官方镜像加速可通过 http://registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。...输出这段提示以后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。

    64840

    Docker:十五分钟快速了解Docker快速部署nginx

    隔离,镜像(核心的环境4m+jdk+mysql)需要的时候我们只需要去运行镜像就可以了,大大提升了灵活性 Docker技术 : 运行在操作系统之上,容器没有内核,也不用虚拟硬件 每个容器是互相隔离的,...的镜像就像是一个模板,可以荣国这个模板来创建容器服务 例子: tomcat ====》run ===》tomcat01容器(提供服务) 我们可以同过镜像创建多个容器(最终服务运行或者是项目运行都是在容器中的...# 8 如何查看docker下载的镜像呢?...Docker是一个 Client server的系统,Docker是守护进程运行在主机上。...通过socket从客户端访问 DockerServer接受到Docker-Client的指令,就会去执行这个命令。

    56840

    docker 简介与安装

    您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。请问? 您要如何确保应用能够在这些环境中运行和通过质量检测?...容器(container) 从面向对象角度 Docker 利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例...每个容器都是相互隔离的、保证安全的平台 从镜像容器角度 可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。...Docker平台架构图解(入门版) Docker工作原理 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器...而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

    63640

    docker入门(利用docker部署web应用)

    由于容器的最上一层是可以修改的,镜像是不能修改的,这样就能保证镜像可以生成多个容器独立运行,没有任何干扰. 3.3 仓库 我们的镜像是要在其它机器上运行,如何进行传输呢?...在使用Bridge时就涉及到了一个问题,既然它有独立的namesapce,这就需要一种技术使容器内的端口可以在主机上访问到,这种技术就是端口映射,docker可以指定你想把容器内的某一个端口可以在容器所在主机上的某一个端口它俩之间做一个映射...,当你在访问主机上的端口时,其实就是访问容器里面的端口. 2....查看主机8080端口是否开启 netstat -na |grep 8080 是开启的那么访问 主机ip:8080 即可访问到nginx. 2....进入网站后要输入网站信息,输入数据库地址时,注意不要输入localhost,因为我们jpress是运行在容器内的,我们会访问tomcat容器内的3306,我们应该用ifconfig查询我们本机的ip地址

    2.4K20

    独家 | 通过Docker技术在macOS上部署3实例MGR环境

    前提条件,已经在自己的macOS操作系统中设置成功了运行在本地的3节点MySQL Group Replication集群,如何设置,可以参考官方文档。...Docker宿主机与macOS操作系统的目录共享 由于如下共享文件夹功能的存在,在这个虚拟机中可以访问并更新macOS操作系统本地的目录,这在后面我们将运行在本地的MySQL数据库搬迁到docker容器中起了重要的作用...那现在我们的思路基本上有了,就是要将原本运行在macOS操作系统中的MySQL数据库的数据文件和配置文件挪到Docker宿主机可以访问的目录下,然后在docker容器中启动MySQL实例。...$ docker pull mysql:5.7.17 从官方的docker store中拉取MySQL镜像,大约只需要几分钟时间,完毕以后,可以通过docker images命令来查看。 ?...运行MySQL docker容器 由于MGR集群要求每个数据库在主机层是可以直接访问到其它节点的主机名的,如果在普通的主机上,只需要修改/etc/hosts文件增加其它节点的主机名和IP地址对应条目即可

    1.5K80

    一文了解Docker

    从上面的架构图上我们可以了解 Docker daemon: 运行在宿主机上,Docker的守护进程,用户通过 docker 命令与Docker daemon交互。...container:容器是从镜像创建的应用运行实例,启动一个镜像就是一个容器,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。...镜像就相当于打包好的代码,镜像启动之后运行在容器中,仓库就是装存储镜像的地方。 从官方网站上拷贝另一种图,介绍Docker Engine 纬度的架构。...清晰的介绍server/client交互,容器和镜像、数据之间的一些联系。 ? 四 动手实践 省略如何在系统上安装docker,不会的自行谷歌。...其中 -d 表示以后台方式启动, -p 端口映射 host_port:docker_port, 访问本机6379端口的请求可以发送到docker实例中的端口6379 。

    83510

    重学Docker

    不同的环境有不同的配置,可能导致不可预估的错误,运维要经常性的改动 世界陷入了混乱,于是上帝说,让Docker来吧,于是一切光明。...bin/bash $ cp -r webapps.dist/* webapps $ exit # 再次访问即可 4.3 启动MySQL 去Docker官网搜索MySQL,跟着其步骤走 MySQL的Docker...6.2 Docker Docker是运行容器的引擎,我们将 操作系统的基础库文件、应用程序、所需的依赖等打包到镜像中,然后通过镜像创建容器(类和对象),而容器就在Docker中运行 ?...,因此是秒级 Docker使用了cgroup + namespace,前者限制资源集,后者限制可访问权限 Docker是Client-Server结构,守护进程在宿主机上,客户端socket连接进程管理运行在主机上的容器...简单来说:使容器和宿主机共享独立于docker生命周期的数据、亦或者:独立于docker生命周期的目录挂载 特点: 数据卷可以容器之间共享或重用 卷中的更改直接生效 卷中的更改不会包含在镜像的更新中 数据卷的生命周期持续到没有容器使用为止

    52210
    领券