docker-高级(待补图)

文章目录

    • 数据卷(Volume)
      • 介绍
      • 查看方法
      • 删除方法
      • 绑定方法
        • 匿名绑定
        • 具名绑定
        • Bind Mount
      • 数据卷管理
    • 网络
      • bridge(桥接模式 默认)
      • HOST(主机模式)
      • None
      • container(指定一个容器进行关联网络共享)
      • 自定义(推荐)
        • docker network 命令
        • 创建网络
          • docker network create
        • 实例展示-自定义
        • 实例展示-桥接(默认)
        • 不同网络模式下的容器连接问题

数据卷(Volume)

介绍

  • 连接容器与主机的存储的介质
  • 强制删除容器并不会删除相应的数据卷,只会删除容器本身

查看方法

docker volume ls

删除方法

docker volume rm [VOLUME NAME]

绑定方法

匿名绑定

使用docker inspect 命令查找 Mounts关键词,Source:主机内目录,Destination:容器内目录
在使用 --rm 退出即删除容器时,匿名数据卷也会被删除,但使用docker rm 删除容器,匿名卷不会被自动删除

-v [CONTAINER SOURCE]

例如:

docker run --rm -d -p 80:80--name nginx_volume -v usr/share/nginx/html nginx
具名绑定

卸载docker后Volume也会被删除。
在使用 --rm 退出即删除容器时,具名绑定数据卷不会被删除)。
无法自由地使用指定的目录绑定容器的数据卷,只能使用数据卷自动生成的目录。

-v [VOLUME NAME]:[CONTAINER SOURCE]

例如:

docker run --rm -d -p 80:80 --name nginx_volume -v nginx-html:/usr/share/nginx/html nginx
Bind Mount

卸载docker后Volume依然存在。
绑定并加载主机的某个文件目录到容器中(覆盖容器中的文件目录)。

-v [HOST SOURCE]:[CONTAINER SOURCE]

例如:

docker run --rm -d -p 80:80 --name nginx_volume -v www/nginx/html:/usr/share/nginx/html nginx

数据卷管理

docker volume参数:
create [VOLUME NAME]:创建数据卷
inspect [VOLUME NAME]:查看一个或多个数据卷的细节(创建时间、driver(驱动)、Labels(标签)、Mountpoint(主机内的加载路径)、Nanme(数据卷名字)、Options(选项)、Scope(作用域))
ls:列出数据卷
prune:删除本地未被使用的数据卷
rm [VOLUME NAME1] [VOLUME NAME2]...:删除一个或多个数据卷

网络

介绍:是Dockr对容器网络隔离的一项技术,提供了多种不同的模式供用户使用,选择不同的网络模式来实现容器网络的互通以及彻底的隔离。
目的:容器间的网络隔离、实现部分容器之间的网络共享、管理多个子网下容器的ip
作用:提供了多种模式,可以定制化的为每个容器制定不同的网络;自定义网络模式,划分不同的子网以及网关、dns等配置;网络互通,实现不同子网之间的网络互通、基于容器名(主机名)的方式在网络内访问

bridge(桥接模式 默认)

在主机中创建一个docker0的虚拟网桥(交换机),在docker0创建一对虚拟网卡,一半在主机上为vethxxx,还有一半在容器内eth0。
内部容器中网络可直接互通,但外部其他主机进行访问时,必须要先访问主机中的物理网卡–>虚拟网桥–>vethxxx–>eth0
[图片]

HOST(主机模式)

容器不再拥有自己的网络空间,而是直接与主机共享网络空间,基于该模式创健的容器的ip与主机是在同一个子网同一个网段中。
缺点:安全性较低,复用性较低。
[图片]

None

Docker将拥有有自己的网络空间,不与主机共享,在这个网络模式下的容器,不会被分配网卡、识、路由等相关信息。
只能在宿主机中使用 docker exec 等命令访问容器。
特点:完全隔离,与外部任何机器都无网络访问,只有自己的lo网卡 127.0.0.1。

[图片]

container(指定一个容器进行关联网络共享)

不会创建自己的网络空间,而是与其他容器共享网络空间,直接使用指定容器的ip或端口等。
[图片]

自定义(推荐)

不适用Dockr自带的网络模式,而是自己去定制化自己特有的网络模式。ckr自带的网络模式,而是自己去定制化自己特有的网络模式。

docker network 命令
docker network [Commands]参数:
connect:将容器连接到网络
create:创建网络
disconnect:将容器与网络断开连接
inspect:显示一个或多个网络的详细信息
ls:列出网络
prune:删除所有未使用的网络
rm:删除一个或多个网络
创建网络
docker network create
docker network create [OPTIONS] NETWORK参数:
-d, --driver string    Driver to manage the Network (default "bridge")
--gateway strings      IPv4 or IPv6 Gateway for the master subnet
--subnet strings       Subnet in CIDR format that represents a network segment--attachable           Enable manual container attachment--aux-address map      Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])--config-from string   The network from which to copy the configuration--config-only          Create a configuration only network--ingress              Create swarm routing-mesh network--internal             Restrict external access to the network--ip-range strings     Allocate container ip from a sub-range--ipam-driver string   IP Address Management Driver (default "default")--ipam-opt map         Set IPAM driver specific options (default map[])--ipv6                 Enable IPv6 networking--label list           Set metadata on a network
-o, --opt map              Set driver specific options (default map[])--scope string         Control the network's scope
实例展示-自定义

目的:展现主机无法与容器实现网络互通,但是容器之间可以进行网络互通的效果。
准备:使用centos镜像进行测试。由于centos是一个系统不是一个软件,一般作为基础镜像去使用,所以运行为一个容器时,centos会自动退出。

#1. 下载centos镜像
docker pull centos#2. 在docker中创建一个桥接网络,并指定网络配置(宿主机ip为192.168.1.x,为了展现主机无法与容器实现网络互通,所以这里指定了192.168.3.x)
docker network create --driver bridge --subnet 192.168.3.0/24 --gateway 192.168.3.1 test_network
docker network ls#3.1 方法一:通过ping本地ip保证centos不会退出。
docker run -d --rm -P --name centos_network1 --net test_network centos ping 127.0.0.1#3.2 方法二:使用 itd 参数。-i,以交互模式运行容器,并保持终端激活。-t,--tty:为容器分配一个伪终端。-d, --detach 后台运行,守护线程,并返回容器ID。
docker run -i -t -d --rm -P --name centos_network2 --net test_network centosdocker ps -a or docker ps#4.测试容器之间网络的连通性
docker exec -it centos_network1 ping centos_network2#查看两个基于test_network网络创建出来的centos容器的网络信息
docker exec centos_network1 ip a
docker exec centos_network2 ip a
实例展示-桥接(默认)

目的:使用自带的bridge网络模式
原理:在hosts内配置主机名及IP地址

#创建两个容器,并使docker_network2连通docker_network1
docker run -i -t -d --rm -P --name docker_network1 centos
docker run -i -t -d --rm -P --name docker_network2 --link docker_network1 centos#测试docker_network2连接到docker_network1 成功
[root@localhost ~]# docker exec -it docker_network2 ping docker_network1
PING docker_network1 (172.17.0.2) 56(84) bytes of data.
64 bytes from docker_network1 (172.17.0.2): icmp_seq=1 ttl=64 time=0.077 ms#测试docker_network1连接到docker_network2 失败
[root@localhost ~]# docker exec -it docker_network1 ping docker_network2
ping: docker_network2: Name or service not known
不同网络模式下的容器连接问题

[图片]
测试环境:
docker0:Docker的虚拟网桥 172.17.0.1 <---->容器1 eth0–> 网络模拟:默认 172.17.0.2
test_network:自定义网络 192.168.3.1 <---->容器2 eth0–> 网络模拟:test_network 192.168.3.2

原理:给其中一个容器创建一个虚拟网卡,并连接到另一个容器中的网段中。
[图片]

#创建容器1 docker_net1
docker run -i -t -d --rm -P --name docker_net1 centos#创建容器2 centos_net2
docker run -i -t -d --rm -P --name centos_net2 --net test_network centos#未作连接前两个不同网络模式下的容器无法连接
[root@localhost ~]# docker exec -it docker_net1 ping centos_net2 
ping: centos_net2: Name or service not known#连接两个不同网络模式下的容器
docker network connect test_network docker_net1# 测试连接 成功
[root@localhost ~]# docker exec -it docker_net1 ping centos_net2 
PING centos_net2 (192.168.3.2) 56(84) bytes of data.
64 bytes from centos_net2.test_network (192.168.3.2): icmp_seq=1 ttl=64 time=0.091 ms

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

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

相关文章

玩转Docker | Docker基础入门与常用命令指南

玩转Docker | Docker基础入门与常用命令指南 引言基本概念help帮助信息常用命令管理镜像运行容器构建镜像其他Docker命令整理结语引言 Docker 是一种开源的应用容器引擎,它允许开发者将应用程序及其依赖打包进一个可移植的容器中,然后发布到任何流行的 Linux 机器上。这大大简…

基于SSM医药进出口交易系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;商品信息管理&#xff0c;仓储部门管理&#xff0c;供应部门管理&#xff0c;业务部门管理&#xff0c;客户管理&#xff0c;财务部管理 业务部门账号功能包括&#xff1a;系统首页&#xff0c;个人中…

2024年大湾区杯粤港澳金融数学建模赛题浅析——助攻快速选题

一图流 赛题难度 A:B2:1 选题人数 A:B2:3 A题&#xff1a;证券市场投资风险控制模型设计 问题简述 随着金融市场的发展&#xff0c;系统性风险的管理变得越来越重要。本题要求通过量化方法测度和监测系统性风险&#xff0c;设计风险计量指标&#xff0c;并基于这些指标构建预…

胡壮麟《语言学教程》第五版PDF英文版+中文版翻译

胡壮麟《语言学教程》中文版&#xff1a;https://pan.quark.cn/s/9491130ec572 《语言学教程》&#xff08;英文版&#xff09;是一部经典的语言学教材&#xff0c;自 1988 年面世以来&#xff0c;被众多高校广泛采用&#xff0c;长销不衰。该教材自出版以来不断修订&#xff…

在浏览器和Node.js环境中使用Puppeteer的Rollup与Webpack打包指南

Puppeteer是一个Node.js库&#xff0c;它提供了一套高级API来通过DevTools协议控制Chrome或Chromium。虽然Puppeteer通常在服务器端使用&#xff0c;但有时你可能需要在浏览器环境中使用它的某些功能。本文将介绍如何使用Rollup和Webpack来打包包含Puppeteer或其轻量级版本Pupp…

C# 如何处理 WebSocket 连接异常

在 C# 中使用 WebSocket 进行通信时&#xff0c;处理连接异常是确保应用程序稳定性和可靠性的重要环节。本文将详细介绍如何在 C# 中有效地处理 WebSocket 连接异常&#xff0c;并附带代码示例进行拆分讲解。 一、理解 WebSocket 连接异常 WebSocket 连接可能会由于多种原因出现…

基于Pycharm和Django模型技术的数据迁移

1.配置数据库 在trip_server/settings.py中修改配置&#xff1a; 其格式可访问官网&#xff1a;Settings | Django documentation | Django 1.1 配置数据库 文件地址&#xff1a;trip_server/settings.py 配置前需要创建&#xff08;NaviCat&#xff09;个人数据库 "…

java访问华为网管软件iMaster NCE的北向接口

最近做的一个项目&#xff0c;需要读取华为一个叫iMaster NCE的网管软件的北向接口。这个iMaster NCE&#xff08;以下简称NCE&#xff09;用于管理项目的整个网络&#xff0c;尤其是光网络。业主要求我们访问该软件提供的对外接口&#xff0c;读取一些网络信息&#xff0c;比如…

创造tips的秘籍——PHP回调后门

0x00 前言 php中包含回调函数参数的函数&#xff0c;具有做后门的潜质。 我就自己给这类webshell起了个名字&#xff1a;回调后门。 0x01 回调后门的老祖宗 php中call_user_func是执行回调函数的标准方法&#xff0c;这也是一个比较老的后门了&#xff1a; call_user_func…

InstructIR: High-Quality Image Restoration Following Human Instructions 论文阅读笔记

这是Radu大佬所在的Wrzburg大学的computer vision lab实验室发表在ECCV2024上的一篇论文&#xff0c;代码开源。文章提出了一种文本引导的All-in-One的restoration模型&#xff0c;如下图所示&#xff1a; 这个工作其实跟"InstructPix2Pix: Learning to Follow Image Edit…

【实用教程】.NET C# PDF 生成技术:哪种方法适合您的项目?

概述&#xff1a;本文介绍了 TX Text Control 真正的 WYSIWYG&#xff08;所见即所得&#xff09;模板系统所带来的独特优势&#xff0c;与传统的 PDF 生成系统&#xff08;如 HTML 到 PDF 转换器或需要自定义编程的 PDF 库&#xff09;相比&#xff0c;模板是可视化设计的&…

Chromium HTML5 新的 Input 类型email对应c++

一、Input 类型: email email 类型用于应该包含 e-mail 地址的输入域。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php"…

notepad++ compare插件的离线下载和安装

一、离线安装 去改地址找到最新的插件&#xff1a;https://github.com/notepad-plus-plus/nppPluginList/blob/master/doc/plugin_list_x64.md下载之后复制到插件文件夹&#xff0c;插件文件夹的打开方式如下 注意目录&#xff1a; 二、问题汇总 &#xff08;1&#xff09…

echarts地图,柱状图,折线图实战

1.地图 <template><div style"height: 100%;" class"cantainerBox"><div class"top"><div class"leftTop"><span class"firstSpan">推广进度</span><div>省份选择&#xff1a;&l…

this关键字详解

文章目录 this使用示例执行原理线程安全 this 在Java中&#xff0c;this是一个特殊的引用&#xff0c;指向当前对象的实例。JVM会给每个对象分配一个this&#xff0c;来代表当前对象&#xff0c;换句话说&#xff0c;this是一个特殊的变量&#xff0c;它保存了当前对象的内存地…

Kafka物理存储机制深度解析

Kafka物理存储机制深度解析 Apache Kafka&#xff0c;作为一个分布式流处理平台&#xff0c;其物理存储机制是确保数据高效、可靠存储和处理的关键。Kafka通过一系列精心设计的存储结构和策略&#xff0c;实现了对海量数据的快速读写、持久化存储以及高效的删除和管理。以下是…

HTB:Cicada[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机进行开放端口扫描 使用nmap对靶机开放端口进行脚本、服务信息扫描 首先尝试空密码连接靶机SMB服务 由于不知道账户名&#xff0c;这里我们使用crackmapexec对smb服务进行用户爆破 通过该账户连接至靶机SMB服务器提取敏感信…

张嘉译王海燕婚姻告急?17年长跑终落幕,真相究竟如何?

娱乐圈又一对金童玉女分道扬镳&#xff1f;在这个瞬息万变的娱乐圈里&#xff0c;爱情似乎总是来得快去得也快。近日&#xff0c;一则关于实力派演员张嘉译与妻子王海燕结束17年婚姻长跑的消息&#xff0c;如同一颗重标题&#xff1a;&#x1f494;张嘉译王海燕婚姻告急&#x…

我的电视 左侧列表内置版 | 非常高清,频道丰富的电视直播应用

我的电视是一款专注于电视直播的应用程序&#xff0c;提供丰富且全面的电视频道&#xff0c;包括央视及各大卫视。无论您是想看新闻、体育、电影还是综艺节目&#xff0c;都可以在这里找到。应用支持高清画质播放&#xff0c;确保流畅无卡顿的观看体验。简洁的界面设计和智能推…

Conmi的正确答案——在Kibana中进入Elasticsearch的索引管理页面

Elasticsearch版本&#xff1a;7.17.25 Kibana版本&#xff1a;7.17.25 注&#xff1a;索引即类似mysql的表。 0、进入首页 1、未创建任何“索引模式”时&#xff1a; 1.1、点击左边的三横菜单&#xff1b; 1.2、点击“Discover”&#xff0c;进入“发现”页面&#xff1b; 2…