当前位置:   article > 正文

Docker | 05.使用Docker部署MySQL并配置端口映射_docker mysql配置映射

docker mysql配置映射

参考视频

14-docker应用部署-部署mysql

1.容器也有端口

先前已经提到,容器存在于宿主机中。宿主机有端口,而容器也有端口,但由于容器是一个独立的沙箱环境,二者的端口并不冲突。

  • 不同容器之间端口不会冲突
  • 容器与宿主机之间的端口不会冲突
  • 同一个容器内部不允许出现端口冲突

image-20220531180656771

2.端口映射

2.1.外部机器无法直接访问容器

image-20220531181050297

如上图所示,外部机器可以访问宿主机,宿主机可以访问容器(宿主机相当于代理),但外部机器却不可以直接访问容器。

2.2.解决方案:端口映射

端口映射是指:将宿主机的A端口与某一个容器的B端口进行绑定。当外部机器访问A端口时,宿主机将以代理的身份访问容器的B端口。如此一来,就实现了外部机器对容器B端口的访问。

image-20220531183011685

2.3.如何实现端口映射

创建容器时加入-p参数:

-p <宿主机端口>:<容器端口>
  • 1

3.使用docker部署mysql,并配置端口映射

  • $PWD是什么?
  • -e MYSQL_ROOT_PASSWORD=123456,我怎么知道-e后面应该接什么?
  1. [拉取镜像] 拉取mysql5.6镜像;

    docker pull mysql:5.6
    
    • 1
  2. [运行镜像以创建容器] 创建容器实例,并配置数据卷和端口映射;

    docker run -id \
    -p 3306:3306 \
    --name=container_mysql \
    -v /usr/local/mysql/conf:/etc/mysql/conf.d \
    -v /usr/local/mysql/logs:/logs \
    -v /usr/local/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    mysql:5.6
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • -p <宿主机端口> <容器端口>是配置端口映射;
    • -v <数据卷目录> <容器内目录>是配置数据卷的参数;
    • -e MYSQL_ROOT_PASSWORD是设置mysql的ROOT密码。
  3. [进入容器] 使用docker exec指令进入容器;

    docker exec -it container_mysql /bin/bash
    
    • 1

    image-20220601101638206

  4. [测试端口映射是否配置成功] 在终端创建一个数据库,随后使用Navicat测试连接,查看数据库是否成功创建。

    image-20220601104627801

    image-20220601104802104

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/87832
推荐阅读
相关标签
  

闽ICP备14008679号