码农知识堂 - 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

    验证可以连通:

    连通结果

    所以:

    • 在自定义网络中,可以给容器起多个别名,默认的别名是容器名本身
    • 在同一个自定义网络中的容器,可以通过别名互相访问
  • 相关阅读:
    非零基础自学Java (老师:韩顺平) 第8章 面向对象编程(中级部分) 8.5 访问修饰符
    【学习笔记】MySQL(Ⅱ)
    代码随想录算法训练营第五十七天 | 392.判断子序列、115.不同的子序列
    要闻 | 自然资源部实景三维建设与城市精细化治理工程技术创新中心揭牌仪式暨第二季度工作推进会顺利召开
    SIT3232E:高静电防护 3.3V 单电源供电双通道 RS232 收发器
    ChatGPT实战与私有化大模型落地
    云原生数字化转型与金融信创建设,鱼和熊掌可兼得
    Java关键字、转义字符与运算符优先级
    能介绍一下Git的分支管理功能吗?
    HTML页面
  • 原文地址:https://blog.csdn.net/qq_41243472/article/details/133869585
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号