美文网首页
docker入门三:搭建可以从本机访问的容器

docker入门三:搭建可以从本机访问的容器

作者: 沿哲 | 来源:发表于2020-10-08 18:52 被阅读0次

    任务

    通过虚拟机中的mysql镜像建立容器使得本机可以通过IP与端口号访问容器内部并使用mysql

    1. pull好mysql镜像

    我用的是mysql:8

    docker pull mysql:8
    

    2. 启动镜像,建立容器

    容器名称:mysql-test2
    端口映射:将容器的22号端口映射出来,使得从其他主机上可以访问3307来访问容器
    MYSQL_ROOT_PASSWORD:会在第3步用到

    docker  run -itd --name mysql-test2 -p 3307:22 -e MYSQL_ROOT_PASSWORD=123456 mysql:8 
    

    建立好的效果图如下,通过docker ps查看容器建立情况


    2.PNG

    3. 进入容器内启动mysql

    按照如下语句进入,回车后需要输入密码。密码就是在启动mysql镜像的时候设定的

    mysql -h localhost -u root -p
    
    • 这里的localhost对应的是容器IP,有专门的语句查看


      3.PNG

    4. apt-get update(容器内部操作)

    从刚才的mysql退出(ctrl+d),配置其它。首先update


    4.PNG

    5. install ssh、vim(容器内部操作)

    update好之后进行安装工作

     apt-get install openssh-server
     apt-get install vim
    

    6. 设定密码

    passwd root
    

    输入自己记得的密码再回车


    6.PNG

    7. 对sshd_config文件进行编辑(容器内部操作)

    在etc/ssh文件夹下

    vi sshd_config
    

    对下面这两句进行修改,均改成yes,并把前面的#去掉!!。

    7.PNG 7.PNG

    8. 重启ssh(容器内部操作)

    一句话的功夫

    service ssh restart
    

    9. 电脑本机登录虚拟机的镜像

    root@后的内容自己在虚拟机中输入ifconfig查看,端口3307
    登录进容器后输入下面这句话,本机也可以使用了!

    mysql -h localhost -u root -p
    
    9.PNG

    用Xshell试一下,相同的操作,仍然可以访问容器并开启mysql服务


    9.PNG

    附:对localhost探究

    如果在mysql启动语句中-h 后不加localhost,那应该用什么IP地址呢?肯定不是虚拟机ifconfig之后虚拟机的地址,那么会是ifconfig之后显示的docker的IP地址吗?经过我的实验,我发现不是!
    对于容器有专门的IP地址查看操作,如下

    docker inspect --format '{{ .NetworkSettings.IPAddress }}' c9d  #c9d是我的容器ID前三位
    

    经过这个语句查到的IP的确和ifconfig查到的不太一样~

    用正经方法查到的IP代替localhost,果然可行~


    相关文章

      网友评论

          本文标题:docker入门三:搭建可以从本机访问的容器

          本文链接:https://www.haomeiwen.com/subject/sukhpktx.html