docker小白第十二天

docker小白第十二天

docker network简介

docker不启动时默认的网络情况。

# 停止docker服务
systemctl stop docker.socket
systemctl stop docker
# 查看docker镜像
docker images

输入查看docker镜像命令后,显示未连接到docker服务器
在这里插入图片描述
docker启动时网络情况

systemctl start docker
docker images

可以看到很多镜像
在这里插入图片描述
此时在查看虚拟机当前的网卡情况,会有一个docker0的虚拟网桥。

ifconfig

在这里插入图片描述

# 查看docker 网络命令
docker network ls

安装完docker后,默认会自动创建三大网络模式,分别为bridge、host、none

在这里插入图片描述

# docker 查看网络命令帮助
docker network --help
# 查看某个网络信息
docker network inspect 网络名字

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

docker网络能干什么

在这里插入图片描述

docker网络模式

在这里插入图片描述

docker网络模式学习案例

# 新建两个ubuntu容器,命名为u1和u2并进入命令行界面
# exit是退出命令行界面,会直接关闭非后台守护式的进程
# ctrl+p+q 退出,任何后台进程均保留
docker run -it --name=u1 ubuntu /bin/bash
docker run -it --name=u2 ubuntu /bin/bash
# 查看已创建的镜像
docker ps

在这里插入图片描述

# 查看容器的网络模式
docker inspect u1

可以看到容器u1的ip、网关、网桥名。需要注意的是docker中的ip是动态分配的,即某个容器停止了或者被删除后,其ip将被紧接着新建的容器使用。
在这里插入图片描述

docker网络模式之bridge

# 查看docker网络列表
docker network ls
# 查看docker网络模式的网桥信息
docker network inspect bridge

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

# 启动两个容器,端口分别为8081和8082
docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-jdk8
docker ps

观察到已经实际启动了两个容器
在这里插入图片描述
输入ip addr可以看到多了很多网卡信息
在这里插入图片描述
进入容器内部查看ip信息

docker exec -it tomcat81 bash
ip addr

可以看到17:eth0@if18,与在宿主机查看的18: vethbb23d64@if17相呼应。即宿主机上显示名称为veth,容器内部显示名称为eth0
在这里插入图片描述

network之host

直接使用宿主机的ip地址与外界进行通信, 不在需要额外进行NAT转换。在这里插入图片描述

# 以host网络模式创建一个后台守护式的容器
docker run -d -p 8083:8080 --network host --name tomcat83 billygoo/tomcat8-jdk8

发现出现一个警告,而且docker ps查看并没有出现像之前一样的0.0.0.0:8083->8080/tcp,这样的一个映射关系。
在这里插入图片描述
在这里插入图片描述
那么此时删掉-p 的参数 重新建立一个容器tomcat8083

docker stop tomcat83
docker remove tomcat83
docker run -d --network host --name tomcat83 billygoo/tomcat8-jdk8
# 查看宿主机的网络情况
ip addr
# 查看容器tomcat83的网络情况
docker inspect tomcat83

在这里插入图片描述
可以看到因为是host模式,容器tomcat83没有自己的ip和网关。
在这里插入图片描述

# 进容器内部查看网络信息
docker exec -it tomcat83 bash
ip addr

可以看到容器内部输入ip addr时与宿主机的信息几乎一样
在这里插入图片描述
因为host模式没有设置-p容器的端口映射关系了,访问刚刚启动的tomcat83,只需要访问宿主机ip:8080端口即可,因为此时容器的ip借用宿主机的.

# 如果浏览器访问无效,关闭linux宿主机的防火墙
systemctl stop firewalld

在这里插入图片描述

网络模式之none

就是禁用网络功能,只有lo标识(就是127.0.0.1表示本地回环)在这里插入图片描述

# 建议一个网络模式为none的容器tomcat84
docker run -d -p 8084:8080 --network none --name tomcat84 billygoo/tomcat8-jdk8
docker ps

在这里插入图片描述
在容器外的宿主机上查看tomcat84网络信息

docker inspect tomcat84

在这里插入图片描述
进容器tomcat84内查看ip addr发现只有一个lo

docker exec -it tomcat84 bash
ip addr

在这里插入图片描述

网络模式之container

新创建的容器不会创建自己的网卡和配置自己的IP,而是和一个指定的容器共享IP、端口范围等。
在这里插入图片描述

# 创建两个容器分别为tomcat85和tomcat86
docker run -d -p 8085:8080 --name tomcat85 billygoo/tomcat8-jdk8
# tomcat86借用tomcat85容器的网络
docker run -d -p 8086:8080 --network container:tomcat86 --name tomcat85 billygoo/tomcat8-jdk8

执行第二个命令报错,相当于tomcat86和tomcat85共用一个ip一个端口,导致端口冲突,使用tomcat镜像不合适。
在这里插入图片描述
使用Alpine操作系统进行案例演示。Alpine操作系统是一个面向安全的轻型linux发行版。

docker run -it --name alpine1 alpine /bin/sh
docker run -it --network container:alpine1 --name alpine2 alpine /bin/sh

在两个新建的容器内查看ip addr发现网卡信息是一样的
在这里插入图片描述
在这里插入图片描述
如果此时exit关闭退出alpine1容器,并docker stop alpine1,查看alpine2容器的信息如下。只剩了lo网卡信息。
在这里插入图片描述

网络模式之自定义网络模式

# 启动两个docker实例tomcat81 和tomcat82
docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-jdk8
# 进入容器内部
docker exec -it tomcat81 bash
docker exec -it tomcat82 bash

分别输入ip addr,查看两个容器ip,一个为172.17.0.2,一个为172.17.0.3.并且两个容器之间可以互相ping通
在这里插入图片描述
在这里插入图片描述
此时如果不是pingIP,而是ping服务名,则会变成unknown错误。因为ip在容器内是可能变换的,所以ping服务名更准确,但是需要自定义网络模式。

引入自定义桥接网络

自定义桥接网络,自定义网络默认使用的是桥接网络bridge。

# 创建一个自定义桥接网络,网络名字叫cc_network
docker network create cc_network
# 查看网络信息
docker network ls

在这里插入图片描述
新建容器加入自定义网络

# 删除上一步新建的两个容器,未使用自定义网络
docker stop tomcat81
docker stop tomcat82
docker rm -f tomcat81
docker rm -f tomcat82
# 新建容器加入自定义网络
docker run -d -p 8081:8080 --network cc_network --name tomcat81 billygoo/tomcat8-jdk8
docker run -d -p 8082:8080 --network cc_network --name tomcat82 billygoo/tomcat8-jdk8

进入新建的容器内部

docker exec -it tomcat81 bash
docker exec -it tomcat82 bash

ping容器名字

ping tomcat81

可以看到能ping通了,建议在使用docker集群环境下多个容器时,用ping容器名比较准确,
在这里插入图片描述
总结:自定义网络本身就维护好了主机名和ip的对应关系( ip和域名都能通,自定义网络提供自动dns解析,可以通过服务名调用)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/538929.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS 脚本工具】修改多个布局的同一文本元素

规划编制的战线有多长,估计各位规划人已经深有体会了。 以村规为例,不服务个两年别想跑哈。其他规划编制时间更长,以至于图纸右下角的年月也是改了又改。 本着分散改不如统一改,手动改不如自动改的原则,小编制作了这个…

谷歌Gemma大模型本地部署以及线上访问流程

1.谷歌开发出强大的 AI 模型 Gemma,该模型可以在笔记本电脑和台式机上运行,这真是太棒了!开源的 Gemma 模型将使研究人员和开发人员能够更轻松地访问和利用其功能,从而为人工智能领域带来更多创新。【【【【本地安装】】】 下载安…

软件设计师16--段页式存储

软件设计师16--段页式存储 考点1:页式存储存储管理 - 页式存储组织存储管理 - 页面置换算法例题: 考点2:段式存储存储管理 - 段式存储组织例题: 考点1:页式存储 存储管理 - 页式存储组织 页式存储:将程序…

第二十三天-数据分析入门实战

目录 1.常用的数据获取网站 2.分析电信用户流失率 字段说明 1.读取数据 2.数据分析describe 3.数据验证 4.分析目的 1.整体流失情况:人数、比例、流失率 2.性别:人数、比例、流失率 3.老人:人数、比例、流失率 4.是否有配偶&#x…

【PHP+代码审计】PHP基础——浮点型和布尔型

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

PTA L2-012 关于堆的判断

将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种: x is the root:x是根结点;x and y are siblings:x和y是兄弟结点;x is the parent of y:x是y的父结点…

【你也能从零基础学会网站开发】Web建站之javascript入门篇 简单认识一下正则表达式

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 为什么使用正则…

1.MongoDB的特点与应用场景

什么是 MongoDB ? MongoDB 是基于 C 开发的 NOSQL 开源文档数据库 ,是最像关系型数据库的 nosql,功能也是最丰富的 nosql,它具有所以的可伸缩性,灵活性,高性能,高扩展性的优势。 大致有如下特…

基于51单片机的用电量检测系统[proteus仿真]

基于51单片机的用电量检测系统[proteus仿真] 用电检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的用电量检测系统 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2¥&#xff…

8分SCI | 揭示随机森林的解释奥秘:探讨LIME技术如何提高模型的可解释性与可信度!

一、引言 Local Interpretable Model-agnostic Explanations (LIME) 技术作为一种局部可解释性方法,能够解释机器学习模型的预测结果,并提供针对单个样本的解释。通过生成局部线性模型来近似原始模型的预测,LIME技术可以帮助用户理解模型在特…

【你也能从零基础学会网站开发】Web建站之javascript入门篇 简单介绍DOM与XML

🚀 个人主页 极客小俊 ✍🏻 作者简介:程序猿、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 XML概述 XML是…

Spring Cloud Alibaba微服务从入门到进阶(四)(服务发现-Nacos )

Nacos是服务发现组件和配置服务器 作为服务发现注册组件Nacos Server 搭建Nacos Server 下载、启动 访问nacos,默认 用户/密码 nacos/nacos 将应用注册到nacos 加依赖 在SpringCloud子项目中,Feign是属于OpenFeign,Sentinel、Nacos是属于alibaba的&…