码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • docker入门加实战—网络


    docker入门加实战—网络

    我们运行了一些容器,但是这些容器是否能够进行连通呢?那我们就来试一下。

    我们查看一下MySQL容器的详细信息:

    主要关注,Networks.bridge.IPAddress属性信息:

    docker inspect mysql
    # 或者过滤一些信息
    docker inspect --format='{{range .NetworkSettings.Networks}}{{println .IPAddress}}{{end}}' mysql
    
    • 1
    • 2
    • 3

    MySQL容器ip地址

    可以看到ip地址为:172.17.0.2

    同理,可以nginx容器ip为:172.17.0.3

    nginx容器ip

    可以看到他们有相同网段,他们都有相同的网关。

    默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上:

    图示

    /16表示ip地址的前16位不能动,也就是前两段不能动;也就是这里不能动。

    不能动的段

    容器的网络IP其实是一个虚拟的IP,其值并不固定与某一个容器绑定,如果我们在开发时写死某个IP,而在部署时很可能MySQL容器的IP会发生变化,连接会失败。

    所以,我们必须借助于docker的网络功能来解决这个问题,官方文档:

    https://docs.docker.com/engine/reference/commandline/network/

    常见命令有:

    命令说明文档地址
    docker network create创建一个网络docker network create
    docker network ls查看所有网络docs.docker.com
    docker network rm删除指定网络docs.docker.com
    docker network prune清除未使用的网络docs.docker.com
    docker network connect使指定容器连接加入某网络docs.docker.com
    docker network disconnect使指定容器连接离开某网络docker network disconnect
    docker network inspect查看网络详细信息docker network inspect

    自定义网络

    查看网络

    docker network ls
    
    • 1

    查看网络

    创建网络

    docker network create sjdwz_network
    
    • 1

    创建网络

    再次查看网络:

    再次查看网络

    通过

    ip addr
    
    • 1

    查看如下:

    查看结果

    可以看到多出来一个网卡;

    让容器加入网络

    让MySQL容器加入网络,并指定别名db

    # mysql容器,指定别名为db,另外每一个容器都有一个别名是容器名
    docker network connect sjdwz_network mysql --alias db
    
    • 1
    • 2

    把我们的dd容器也加入到网络,不指定别名

    docker network connect sjdwz_network dd
    
    • 1

    注意 容器创建时连接网络可以如下操作:可以加--network 网络名加入,比如:

    docker run -d --name dd -p 8080:8080 --network sjdwz_network docker-demo:1.0 
    
    • 1

    测试互连

    进入到dd容器

    docker exec -it dd bash
    
    • 1

    ping Mysql

    ping mysql
    
    • 1

    验证可以连通:

    连通结果

    所以:

    • 在自定义网络中,可以给容器起多个别名,默认的别名是容器名本身
    • 在同一个自定义网络中的容器,可以通过别名互相访问
  • 相关阅读:
    MySQL数据库的索引
    如何使用 ArrayPool
    听力检测为什么要在标准化的隔声屏蔽系统中进行?
    Android系统_MSM8953_android10_adb连接adbd加入密码检测
    【数据结构与算法】之“堆”介绍
    Linux CentOS配置阿里云yum源
    JavaScript的数组、函数的两种定义方式、js中的函数不允许重载
    87.(cesium之家)cesium热力图(贴地形)
    手把手教你使用Java生成助记词、私钥、地址|Java区块链钱包生成助记词、地址
    Power BI 傻瓜入门 7. 清理、转换和加载数据
  • 原文地址:https://blog.csdn.net/qq_41243472/article/details/133869585
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号