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

Linux之Docker虚拟化技术(二)

一、创建docker-service服务

/usr/lib/systemd/system目录下创建服务文件,这里可能会出现环境问题报错,我这里就做了一个软链接映射到docker启动目录

其修改的配置文件如下

[Unit]
Description=Docker server daemon
Documentation=man:docker(8) man:sshd_config(5)
After=network.target docker-keygen.target
Wants=docker-keygen.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H 0.0.0.0:2375 -H unix:///var/run/docker.sock
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s[Install]
WantedBy=multi-user.target

二、docker网络模式(四种)

  • host模式

宿主机和容器共用一套端口,IP地址相同,端口范围也仅限在1~65535范围

[root@localhost ~]# docker run -itd --name=vm01 --net=host rockylinux-ssh:latest
87b25827ac3ed0c55d2a921e4173baf170d0b6ec389f5d25512fe148cf183003
[root@localhost ~]# 

  • container模式

所创建的虚拟机和你创建的容器为同一个IP

首先我这里创建了一台虚拟机的IP是在虚拟网桥docker0分配的

## 创建虚拟机
docker run -itd --name=vm0 rockylinux-ssh:latest

根据创建的虚拟机做一个container网络模式的映射

[root@localhost ~]# docker run -itd --name=vm1 --net=container:vm0 rockylinux-ssh:latest
7d7b6ffd62e70a61ac76c6a77e70fd03e7ed7d37c09944f9748e7bccc4ca8a99

下面我们是根据container模式创建的虚拟机,它和我们创建的vm0容器的ip、网关掩码都是一样的

  • None模式(自定义ip地址 静态IP )

虚拟机内的网卡IP不会被分配,需要手动进行配置,常用pipework进行手动配置

[root@localhost ~]# docker run -itd --name=vm2 --net=none rockylinux-ssh:latest
dddf11283b2057252abb70494cf6405c62e341fb1fcbd3a89f917fca07d9448f

查看容器内网卡信息

这里的自定义网卡信息我们通常会使用pipework工具来自定义设置

## 安装pipework工具
git clone https://github.com/jpetazzo/pipework## 通常情况下我们会把他放在/usr/bin目录下## 为了防止权限无法访问我们通常会个给它授予权限
[root@localhost ~]# chmod +x  /usr/bin/pipework
[root@localhost ~]# 

检验之后效果如图所示

创建自定义网络过程


## pipework 参数解释
docker0 指代宿主机与虚拟机的通信的网卡
## -i 指定创建的网卡名
## vm2只创建的容器
## 192.168.101.128指桥接网段指定的ip 
## 24表示掩码
## 172.17.0.1 表示网关
#############[root@localhost system]# pipework docker0 -i eth0 vm2 192.168.101.128/24@172.17.0.1

自定义网卡已经配置成功

  • bridge桥接模式(默认桥接方式)

默认会将docker容器连接到虚拟网桥交换机,然后虚拟机IP会由这个虚拟网桥交换机进行IP转发

创建过程如下

1.首先docker虚拟机会将虚拟网卡与虚拟网桥交换机搭建为veth_pair设备

2.然后veth_par一端在容器的内部,默认情况下docker容器veth_pair会被放在一个虚拟网桥交换机中,而不同容器会有多个veth_par对,其内部通信

3.然后通过虚拟网桥交换机通过docker0连接dhcp池子自动分配一个ip和端口配置

4.此时容器可以与宿主机进行通信,同时也可以与外网进行通信,但是其他宿主机访问宿主机的容器时是需要通过nat规则进行ip路由的转发,从而映射到宿主机ip和端口

原理图如下:

桥接物理网卡,保证在局域网内部容器充当机器都能内部通信

  • 首先将宿主机的docker0网卡设置成br0,ens33网卡桥接一个网卡br0,具体配置情况如下图所示

ens33网卡加入如下配置

Bridge="br0"

将docker0网卡设置为桥接网卡


## 配置信息如下
## 主要给ifcfg-br0网卡配置文件加入如下配置即可TYPE="BRIDGE"
BOOTPROTO="static"
TYPE="BRIDGE"
BOOTPROTO="static"
GATEWAY=192.168.101.2
DNS1=114.114.114.114                                                                                                                
~                             ### 重启网卡
sytemctl restart NetworkManager

已经桥接到了br0网卡

使用桥接的自定义网桥 分配虚拟网桥段的ip

修改service启动配置文件

创建网卡,分配网卡地址

[root@localhost ~]# pipework br0 -i eth0 vm6 192.168.101.88/24@192.168.101.1
[root@localhost ~]# 

http://www.xdnf.cn/news/19044.html

相关文章:

  • Mysql系列--11、使用c/c++访问mysql服务
  • 软件安装教程(二):Pycharm安装与配置(Windows)
  • DeepSeek大模型风靡云平台,百度智能云、阿里云、腾讯云等多个平台宣布上线DeepSeek模型
  • java_web 日志配置
  • 瑞芯微RK3576开发板Android14三屏异显开发教程
  • 【项目思维】通过编写一个贪吃蛇小程序,并移植到嵌入式设备上,解析编程思维的本质
  • SAP-ABAP:SAP 数值显示格式控制:负号前置方法与最佳实践总结
  • 一般纳税人
  • JavaScript 数组核心操作实战:最值获取与排序实现(从基础到优化)
  • CSS text-decoration-thickness:精细控制文本装饰线粗细的新属性
  • 光学设计中干涉现象难预测?OAS 软件多结构干涉来解决
  • Word文档怎么打印?Word打印技巧?【图文详解】单面/双面/指定页面/逆序等Word打印选项
  • Linux学习——sqlite3
  • 【系列01】端侧AI:构建与部署高效的本地化AI模型
  • 【Linux】Make/Makefile (自动化构建):从“是什么”到“会用它”
  • 软考-系统架构设计师 专家系统(ES)详细讲解
  • Azure、RDP、NTLM 均现高危漏洞,微软发布2025年8月安全更新
  • PlotJuggler如何安装和使用
  • AI 自动化编程 trae 体验3 开发小程序
  • (Nginx)基于Nginx+PHP 驱动 Web 应用(上):配置文件与虚拟主机篇
  • 网络编程(2)—多客户端交互
  • Uniapp + UView + FastAdmin 性格测试小程序方案
  • Qt类-扩充_xiaozuo
  • 龙巍:探究青铜器在木雕中的运用
  • 学习:uniapp全栈微信小程序vue3后台(6)
  • 【国内电子数据取证厂商龙信科技】ES 数据库重建
  • 【Flask】测试平台开发,产品管理实现添加功能-第五篇
  • DevOps
  • 沃尔玛AI系统Wally深度拆解:零售业库存周转提速18%,动态定价争议与员工转型成热议点
  • GitHub宕机自救指南