当前位置: 首页 > news >正文

docker (四)-docker网络

默认网络

docker会自动创建三个网络,bridge,host,none

  • bridge桥接网络

如果不指定,新创建的容器默认将连接到bridge网络。

默认情况下,使用bridge网络,宿主机可以ping通容器ip,容器中也能ping通宿主机

容器之间只能通过 IP 地址相互访问,由于容器的ip会随着启动顺序发生变化,因此不推荐使用ip访问。

  • host

慎用,可能会有安全问题。

容器与宿主机共享网络,不需要映射端口即可通过宿主机IP访问。(-p选项会被忽略)

主机模式网络可用于优化性能,在容器需要处理大量端口的情况下,它不需要网络地址转换 (NAT),并且不会为每个端口创建“用户空间代理”。

  • none

禁用容器中所用网络,在启动容器时使用。

用户自定义网络

创建用户自定义网络

docker network create my-net

将已有容器连接到此网络

docker network connect my-net db-mysql

docker inspect X 可看到有两个网络:一个默认brige 一个为自定义

docker network disconnect X 断开网络后,查看只有一个网络默认的brige

创建容器时指定网络。

docker run -it --rm --network my-net mysql:5.7 mysql -hdb-mysql -uroot -p

-it:用户可以与容器进行交互  --rm:Docker 在容器停止后立即删除容器

mysql -hdb-mysql: mysql指在容器运行MYSQL客户端, -hdb-mysql MySQL 客户端要连接到的 MySQL 服务器的主机名

在用户自定义网络上,容器之间可以通过容器名进行访问

用户自定义网络使用 Docker 的嵌入式 DNS 服务器将容器名解析成 IP。

主机名解析

hostname

容器的hostname默认为容器的 ID。

docker run -it -d --hostname my-alpine --name my-alpine alpine:3.15

-d:后台运行

--hostname my-alpine: 这个标志设置容器的主机名为 my-alpine

--name my-alpine: 这个标志为容器指定一个用户定义的名称 my-alpine

容器主机名(内部网络中是唯一)主要用于容器内部网络中的通信和标识,而容器命名则用于 Docker 主机上对容器的管理和引用(主要是给镜像运行的容器一个新名称)。

docker inspect \--format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-alpine

/etc/hosts

在容器内手动修改/etc/hosts文件,容器重启后会恢复默认配置。

要是/etc/hosts修改生效,使用--add-host

docker run --add-host=my-alpine:172.17.0.3 -it --rm alpine:3.15

相关文章:

  • 转换成小写字母
  • 数据检索:倒排索引加速、top-k和k最邻近
  • PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证
  • PXE实现自动批量安装部署操作系统
  • HarmonyOS 横屏调试与真机横屏运行
  • 从零开始:用 Rust 编写你的第一个 Web 服务
  • 从MobileNetv1到MobileNetv3模型详解
  • Git快速掌握,通俗易懂
  • Windows11通过SMB映射NAS网络驱动磁盘
  • 【QT+QGIS跨平台编译】之三十九:【Exiv2+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • RK3568笔记十七:LVGL v8.2移植
  • Git 存储大文件
  • ES实战--文档间的关系
  • leetcode刷题--贪心算法
  • 【LeetCode: 107. 二叉树的层序遍历 II + BFS】
  • [LeetCode] Wiggle Sort
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • create-react-app做的留言板
  • css系列之关于字体的事
  • js 实现textarea输入字数提示
  • leetcode46 Permutation 排列组合
  • PAT A1092
  • PermissionScope Swift4 兼容问题
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • Solarized Scheme
  • spring + angular 实现导出excel
  • Vue2.0 实现互斥
  • 前端js -- this指向总结。
  • elasticsearch-head插件安装
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 从如何停掉 Promise 链说起
  • ​2020 年大前端技术趋势解读
  • #AngularJS#$sce.trustAsResourceUrl
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (二)linux使用docker容器运行mysql
  • (九十四)函数和二维数组
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)jQuery 基础
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***通过什么方式***网吧
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core跨平台微服务学习资源
  • .NET Project Open Day(2011.11.13)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .Net中ListT 泛型转成DataTable、DataSet
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [BetterExplained]书写是为了更好的思考(转载)