Centos8.5.2111(1)之本地yum源搭建和docker部署与网络配置

由于后边可能要启动多个服务,避免服务之间相互干扰,本课程建议每个服务独立部署到一台主机上,这样做会导致资源占用过多,可能会影响系统的运行。服务器部署一般不采用GUI图形界面部署,而是采用命令行方式部署,主要是基于已下几方面的考虑。‌

‌               资源利用效率高‌:服务器主要用于处理大量的数据和请求,使用图形化界面会消耗较多的系统资源,降低服务器的性能。相比之下,命令行界面更加轻量级,能够更好地利用服务器的资源,提高运行效率‌。

               ‌稳定性和可靠性‌:服务器为了提供稳定和可靠的服务而存在,图形化界面容易受到各种窗口操作和系统进程的影响,增加了系统的不稳定性。而命令行界面相对简洁,减少了不必要的干扰和风险,有利于确保服务器的稳定运行‌。

‌               远程管理和自动化操作‌:服务器通常需要远程管理和自动化操作,命令行界面可以通过SSH等远程登录协议进行远程管理,使管理员可以方便地远程进行配置、监控和故障排除。同时,命令行界面也更适合编写自动化脚本和批处理任务,从而提高运维效率‌。

‌               安全性考虑‌:服务器面临更多的网络攻击和威胁,图形化界面相对来说更容易受到入侵和破坏。而命令行界面相对简化,减少了攻击面,提高了服务器的安全性‌。

         因此,本课程先采用最小化安装,根据需要再添加各种软件工具。

         另外,由于计算机硬件更新很快,各种软件平台占用的资源越来越多,一台机器很难同时启动多台服务器,而且启动起来速度也受到影响。为此,本课程拟采用Docker容器部署各种服务。

1 CentOS 8的最小化安装

         Linux8的安装,我们采用下载ISO格式的安装包到本地,用VMwere Workstations(建议v14以上)安装成虚拟机。如果用户不做干预,默认情况下会自动安装成GUI模式,这样会占用大量的硬盘空间,运行时要占用跟多的硬件资源,速度也大大受到影响。采用下面的方法,才能顺利进行最小化安装。由于在命令行下,拷贝编辑等功能不太方便,我们可以采用SSH工具登录。这里的基本工具选用MobaXterm,该工具除了可以方便拷贝粘贴外,还可以拖拽方式实现虚拟机与宿主机间的文件共享。

1.1 准备工具

1) VMware Workstations 17

VMware 17密钥:MC60H-DWHD5-H80U9-6V85M-8280D

官方直接下载

https://download3.vmware.com/software/WKST-1750-WIN/VMware-workstation-full-17.5.0-22583795.exe

2)MobaXterm

https://download.mobatek.net/2412024041614011/MobaXterm_Installer_v24.1.zip

3)下载CentOS8

图 1.1 阿里网站下载

下载地址

https://mirrors.aliyun.com/centos/8.5.2111/isos/x86_64/CentOS-8.5.2111-x86_64-dvd1.iso

先安装VMware Workstation 17和MobaXterm。

1.2 最小化安装

创建虚拟机按下面步骤实施即可。

图 1.2

图 1.2

网络设置为桥接或NAT都可以,以后可以根据需要进行更换或增减。

图 1.3

启动开始安装

图 1.4

图 1.5

按编号顺序设置

图 1.6

网络点关闭字体开启网络:这时以太网会显示已连接网络

图 1.7

只有再上一步网络连接后这里的安装源才可以编辑,这里选择http://,右边的输入框手动输入阿里云的镜像源mirrors.aliyun.com/centos/8/BaseOS/x86_64/os

图 1.8

直接选择最小安装即可,其他的都不需要,即便是做服务器其他安装也没啥用,当然如果你用容器的话可以勾选上这里默认的容器管理是podman而不是docker,如果要用docker这里不用勾选免得你后面还要卸载。

图 1.9

一路向下完成安装重启。

最小化安装拥有的外部命令

yum          (有这个基本缺什么就能装什么)
ssh   (方便远程连接)
curl          (方便下载远程文件)

ping          百度查看连通性

ip a           查看ip地址和Mac地址

yum源有问题,我们后边再讲解搭建本地yum源。

1.3 基本网络配置

1)启动网卡,并通过DHCP获取ip地址

         安装时,网络连接选择nat连接,通过主机物理网卡和外网联通。安装完系统重启后,查看ip地址,发现没有分配ip地址,也无法ping通外网。下面进行基本的为了设置。到/etc/sysconfig/network-scripts/目录下查看

[root@7a98d431bf16 /]# cd /etc/sysconfig/network-scripts/

[root@7a98d431bf16 network-scripts]# ls

ifcfg-ens3

         查看一下网卡配置文件ifcfg-ens3

root@7a98d431bf16 network-scripts]#vi ifcfg-ens3

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=dhcp

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

NAME=ens3

UUID=534629aa-e625-4e65-b3d3-f50677ea4ac3

DEVICE=ens3

ONBOOT=no

把最后一行“ONBOOT=no”改为“ONBOOT=yes”,然后重启网络并查看ip、测试和外网连通性。

[root@7a98d431bf16 /]systemctl restart NetworkManager.service

[root@7a98d431bf16 ~]# ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

24: eth0@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default

    link/ether 02:42:c0:a8:00:d2 brd ff:ff:ff:ff:ff:ff link-netnsid 0

    inet 192.168.0.210/24 brd 192.168.0.255 scope global eth0

       valid_lft forever preferred_lft forever

[root@7a98d431bf16 ~]# ping www.baidu.com -c 2

PING www.a.shifen.com (183.2.172.42) 56(84) bytes of data.

64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=1 ttl=50 time=30.5 ms

64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=2 ttl=50 time=28.7 ms

--- www.a.shifen.com ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1005ms

rtt min/avg/max/mdev = 28.737/29.639/30.542/0.918 ms

可见这样网卡得到启动,并获得了ip地址,也能和外网连通。

为了后边输入命令省事,安装命令补全:

[root@7a98d431bf16 ~]# yum install bash -y

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 0:08:13 ago on Wed Sep 18 04:15:50 2024.

Package bash-4.4.19-14.el8.x86_64 is already installed.

Dependencies resolved.

==================================================================================================

 Package          Architecture       Version                   Repository                    Size

==================================================================================================

Upgrading:

 bash             x86_64             4.4.20-2.el8              LocalRepo_BaseOS             1.5 M

Transaction Summary

==================================================================================================

Upgrade  1 Package

Total size: 1.5 M

Downloading Packages:

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                                          1/1

  Upgrading        : bash-4.4.20-2.el8.x86_64                                                 1/2

  Running scriptlet: bash-4.4.20-2.el8.x86_64                                                 1/2

  Cleanup          : bash-4.4.19-14.el8.x86_64                                                2/2

  Running scriptlet: bash-4.4.19-14.el8.x86_64                                                2/2

  Verifying        : bash-4.4.20-2.el8.x86_64                                                 1/2

  Verifying        : bash-4.4.19-14.el8.x86_64                                                2/2

Upgraded:

  bash-4.4.20-2.el8.x86_64

Complete!

[root@7a98d431bf16 ~]# yum install bash-completion -y

Failed to set locale, defaulting to C.UTF-8

Last metadata expiration check: 0:08:47 ago on Wed Sep 18 04:15:50 2024.

Dependencies resolved.

==================================================================================================

 Package                     Architecture    Version              Repository                 Size

==================================================================================================

Installing:

 bash-completion             noarch          1:2.7-5.el8          LocalRepo_BaseOS          274 k

Installing dependencies:

 libpkgconf                  x86_64          1.4.2-1.el8          LocalRepo_BaseOS           35 k

 pkgconf                     x86_64          1.4.2-1.el8          LocalRepo_BaseOS           38 k

 pkgconf-m4                  noarch          1.4.2-1.el8          LocalRepo_BaseOS           17 k

 pkgconf-pkg-config          x86_64          1.4.2-1.el8          LocalRepo_BaseOS           15 k

Transaction Summary

==================================================================================================

Install  5 Packages

Total size: 379 k

Installed size: 1.0 M

Downloading Packages:

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                                          1/1

  Installing       : pkgconf-m4-1.4.2-1.el8.noarch                                            1/5

  Installing       : libpkgconf-1.4.2-1.el8.x86_64                                            2/5

  Installing       : pkgconf-1.4.2-1.el8.x86_64                                               3/5

  Installing       : pkgconf-pkg-config-1.4.2-1.el8.x86_64                                    4/5

  Installing       : bash-completion-1:2.7-5.el8.noarch                                       5/5

  Running scriptlet: bash-completion-1:2.7-5.el8.noarch                                       5/5

  Verifying        : bash-completion-1:2.7-5.el8.noarch                                       1/5

  Verifying        : libpkgconf-1.4.2-1.el8.x86_64                                            2/5

  Verifying        : pkgconf-1.4.2-1.el8.x86_64                                               3/5

  Verifying        : pkgconf-m4-1.4.2-1.el8.noarch                                            4/5

  Verifying        : pkgconf-pkg-config-1.4.2-1.el8.x86_64                                    5/5

Installed:

  bash-completion-1:2.7-5.el8.noarch                  libpkgconf-1.4.2-1.el8.x86_64

  pkgconf-1.4.2-1.el8.x86_64                          pkgconf-m4-1.4.2-1.el8.noarch

  pkgconf-pkg-config-1.4.2-1.el8.x86_64

Complete!

安装时显示“Failed to set locale, defaulting to C.UTF-8”,重新安装语言包:

[root@7a98d431bf16 ~]# yum install glibc-langpack-zh yum install glibc-langpack-en

2)设置固定ip

如果需要把ip地址设置为固定ip,只需把ifcfg-ens3配置文件修改为:

root@7a98d431bf16 network-scripts]#vi ifcfg-ens3

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

NAME=ens3

UUID=534629aa-e625-4e65-b3d3-f50677ea4ac3

DEVICE=ens3

ONBOOT=no

IPADDR=192.168.0.100

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

DNS1=114.114.114.114

用systemctl restart NetworkManager.service重启网络,这样就变成固定ip了。

1.4 本地yum源架设

Centos 8的停止维护EOL(End of Life)2024年5月31日,centos7为2024年6月30日,之后默认方式安装更新软件会受到影响。因此需要搭建本地的yum源。

1)虚拟机挂载光驱

图 1.10

创建挂载目录

mkdir /mnt/cdrom

挂载iso光驱到挂载目录cdrom

①临时挂载

mount -t iso9660 /dev/cdrom  /mnt/cdrom

②永久挂载

sudo vi /etc/fstab

/dev/sr0 /mnt/cdrom auto defaults 0 0

查看

[root@wuzz ~]# lsblk

图 1.11

可以看见,光盘已经挂载上去了。

2)修改repo文件

/etc/yum.repos.d目录下所有*.repo文件删除,并创建local.repo

[root@wuzz ~]#rm -rf *.repo

[root@wuzz ~]#vi local.repo

#Base OS

[LocalRepo_BaseOS]

name=LocalRepo_BaseOS

baseurl=file:///mnt/dvd/BaseOS

gpgcheck=0

gpgkey=file:///mnt/dvd/BaseOS/RPM-GPG-KEY-redhat-release

enabled=1

#App Stream

[LocalRepo_AppStream]

name=LocalRepository_AppStream

baseurl=file:///mnt/dvd/AppStream

enabled=1

gpgcheck=0

gpgkey=file:///mnt/dvd/AppStream/RPM-GPG-KEY-redhat-beta

参数说明:

[LocalRepo] # 该部分的名称

name # 存储库的名称

baseurl # 包裹的位置

enabled # 启用存储库

gpgcheck # 启用安全安装(gpgcheck是可选的(如果设置gpgcheck = 0,则无需提及gpgkey)

gpgkey # 密钥的位置

清除本地缓存并重建。

[root@wuzz ~]#yum clean all

[root@wuzz ~]#yum makecache

措施一下,安装net-tools:

[root@7a98d431bf16 ~]# yum install net-tools -y

Last metadata expiration check: 0:56:16 ago on Wed 18 Sep 2024 04:15:50 AM UTC.

Dependencies resolved.

==================================================================================================

 Package           Architecture   Version                          Repository                Size

==================================================================================================

Installing:

 net-tools         x86_64         2.0-0.52.20160912git.el8         LocalRepo_BaseOS         322 k

Transaction Summary

==================================================================================================

Install  1 Package

Total size: 322 k

Installed size: 942 k

Downloading Packages:

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

  Preparing        :                                                                          1/1

  Installing       : net-tools-2.0-0.52.20160912git.el8.x86_64                                1/1

  Running scriptlet: net-tools-2.0-0.52.20160912git.el8.x86_64                                1/1

  Verifying        : net-tools-2.0-0.52.20160912git.el8.x86_64                                1/1

Installed:

  net-tools-2.0-0.52.20160912git.el8.x86_64

至此,搭建本地yum源完成。

2 Docker部署

2.1 安装docker

         安装辅助工具

yum install -y yum-utils device-mapper-persistent-data lvm2 wget curl

如果安装yum-utils-4.0.21-3.el8.noarch.rpm出问题,直接通过ali云上安装:

rpm -ivh --nodeps http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/yum-utils-4.0.21-3.el8.noarch.rpm

安装dockers

dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

dnf install -y docker-ce docker-ce-cli containerd.io

systemctl start docker

systemctl enable docker

安装docker-compose 现在版本是v2.29.3

curl -L "https://github.com/docker/compose/releases/download/v2.29.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

修改二进制文件的执行权限:

sudo chmod +x /usr/local/bin/docker-compose

验证安装是否成功:

docker-compose --version

查看docker版本号:

[root@wuzz ~]# docker version

Client: Docker Engine - Community

 Version:           26.1.3

 API version:       1.45

 Go version:        go1.21.10

 Git commit:        b72abbb

 Built:             Thu May 16 08:34:39 2024

 OS/Arch:           linux/amd64

 Context:           default

Server: Docker Engine - Community

 Engine:

  Version:          26.1.3

  API version:      1.45 (minimum version 1.24)

  Go version:       go1.21.10

  Git commit:       8e96db1

  Built:            Thu May 16 08:33:34 2024

  OS/Arch:          linux/amd64

  Experimental:     false

 containerd:

  Version:          1.6.32

  GitCommit:        8b3b7ca2e5ce38e8f31a34f35b2b68ceb8470d89

 runc:

  Version:          1.1.12

  GitCommit:        v1.1.12-0-g51d5e94

 docker-init:

  Version:          0.19.0

  GitCommit:        de40ad0

2.2 设置docker加速(须经常更换)

[root@wuzz ~]# cat /etc/docker/daemon.json

{

  "registry-mirrors": [

        "https://register.liberx.info",

        "https://dockerpull.com",

        "https://docker.anyhub.us.kg",

        "https://dockerhub.jobcher.com",

        "https://dockerhub.icu",

        "https://docker.awsl9527.cn"]

}

重启

udo systemctl daemon-reload

sudo systemctl restart docker

措施一下,拉取centos最新版本

图 1.12

3 网络配置与管理

Linux服务器的网络配置是Linux系统管理的底层建筑,没有网络配置,服务器之间就不能相互通信。网络配置通常包括主机名,IP地址,子网掩码,默认网关,DNS服务器等,本章将介绍Linux网路配置的基础知识。

3.1 命令行

NetworkManager是管理Linux系统的工具,我们通常通过它来设置IP地址和子网掩码以及查看网卡相关配置等信息。以下是关于工具的一些关键词:
(1) 设备(device)即网络接口,设备也可以是网卡等。
(2) 连接(connection)是设备设置信息的集合,是对网络接口的配置。
(3) 连接与设备绑定后即表示该设备已完成配置。
(4) 一个网络接口可以有多个连接配置,但同时只能有一个连接生效。

使用NetworkManager命令进行配置

1 查看网络信息:

命令

说明

nmcli dev status

显示所有网络设备(网卡)的状态

nmcli dev show

设备名 显示某个网络设备(网卡)的状态

nmcli con status

显示所有网络连接的状态概述

nmcli con show

连接名 显示某个网络连接的状态概述

nmcli con show --active

仅列出活动的网络连接

nmcli dev status

1-查看网卡配置

ifconfig

2-查看网卡配置

ip addr

3-查看网卡配置

2 启用和禁用连接,设备:

命令

说明

nmcli con reload

重启网络连接

nmcli con up

连接名 开启某个网络连接

nmcli con down

连接名 禁用配置 (一个网卡可以有多个配置)

nmcli dev disconnect

连接名 禁用网卡

nmcli dev connect

连接名 启用网卡

3 对设备(网卡)进行配置:

命令

说明

nmcli con add con-name 连接名(YY type ethernet ifname 设备名(XX

为名为XX的网络设备(网卡)添加一个名为YY的新连接。它的类型为Ethernet,它的IP地址为自动分配。

nmcli con add con-name 连接名 type ethernet ifname 设备名 ip4 192.168.1.1/24 gw4 192.168.1.254

为名为XX的网络设备(网卡)添加一个名为YY的新连接。它的类型为Ethernet,它的IP地址以静态方式配置。

nmcli con del 连接名

删除名为XX的连接

nmcli con mod XX connection.autocon-nect yes

将名为XX网卡的IP地址划分方式修改为自动

nmcli con mod XX ipv4.dns 192.168.1.1

修改DNS192.168.1.1

nmcli con mod XX +ipv4.dns 192.168.1.2

添加DNS 192.168.1.2

nmcli con mod XX -ipv4.dns 192.168.1.2

删除DNS 192.168.1.2

nmcli con mod XX ipv4.address 192.168.1.1/24 gw4 192.168.1.254

修改IP地址和默认网关

nmcli con mod XX +ipv4.address 192.168.1.2/24

添加多个IP,地址为192.168.1.2

3.2 配置文件

在Linux系统中,修改设备(网卡)的IP还能通过在网卡配置文件中实现。网卡的配置文件位于/etc/sysconfig/network-scripts/ 目录下,文件名格式为ifcfg-XX,其中XX为网卡名称。

配置网卡为静态IP
(1) 首先切换到/etc/sysconfig/network-scripts/ 目录下。
(2) 使用vim编辑器修改网卡文件ifcfg-XX,将需要配置的选项写入并保存。

网卡配置文件的相关参数(默认)

参数值

说明

TYPE=Ethernet

网卡类型:为以太网

PROXY_METHOD=none

代理方式:关闭状态

BROWSER_ONLY=no

只否只是浏览器:否

BOOTPROTO=dhcp

网卡的引导协议:DHCP

DEFROUTE=yes

是否启用默认路由:是

IPV4_FAILURE_FATAL=no

是否开启IPV4致命错误检测:否

NAME=ens33

网卡物理设备名称

UUID=xxxx

通用唯一识别码

DEVICE=ens33

网卡设备名称, 必须和 NAME 值相同

ONBOOT=no

是否开机启动:

IPV6INIT=yes

IPV6是否自动初始化:

IPV6_DEFROUTE=yes

IPV6是否可以为默认路由:

IPV6_FAILURE_FATAL=no

是不开启IPV6致命错误检测:否

IPV6_ADDR_GEN_MODE=stable-privacy IPV6

地址生成模型:stable-privacy

3 修改具体配置项为以下内容:

命令

说明

BOOTPROTO=static(或none

设置网卡引导协议为 静态

ONBOOT=yes

设置网卡启动方式为 开机启动 并且可以通过系统服务管理器 systemctl 控制网卡

IPADDR=192.168.1.1

配置静态IP地址

NETMASK=255.255.255.0

配置IPv4子网掩码

GATEWAY=192.168.1.254

配置IPV4网关

若网卡有多个IP,则应修改以下内容:

命令

说明

IPADDR0=192.168.1.1

IP-1

NETMASK0= 255.255.255.0 PREFIX0= 24

子网掩码

IPADDR1=192.168.1.2

IP-2

NETMASK1= 255.255.255.0 PREFIX1= 24

子网掩码

……

(4) 修改完网卡配置后,需要执行systemctl restart NetworkManager.service命令重启网络服务,使新配置生效。

3.3 命令行启动图形画界面进行网卡IP配置

1 在命令行终端输入命令:

[root@localhost ~]$ nmtui

2 选中【Edit a connection】,如图1.13所示。

图 1.13

3 选中要编辑的网卡,按下键盘“Enter”键,如图1.14所示。

图 1.14

4 选择【Manual】,修改IP地址等信息,如图1.15所示。

图 1.15

5 配置完成后回车【OK】,如图1.16所示。

图 1.16

6 回车【Back】返回,如图1.17所示。
 

图 1.17

7 回车【Activate a connection】激活刚才的网卡配置,如图1.18所示。

图 1.18

8 确定要激活的网卡,回车【Activate】(有*的网卡表示已激活),如图1.19所示。

图 1.19

3.4 内网与外网多网卡配置

         数据中心DC中一般都是多重网络,一个网络用于外连,另外的网络用于内部各个服务器和终端的数据交换、传递心跳等信息。下面我们在虚拟机上配置两个网段,一个网络连外网,另一个做内部网络使用。如图1.20所示。

图 1.20

在第1章中我们安装虚拟机时选择的是通过宿主机物理网卡以NAT的方式连接外网的,所以虚拟机本身就具备一个通过NAT连接外网的网段192.168.0.0/24。下面只需添加一个网卡用于虚拟机内网连接就可以了。为了不影响其他应用程序的配置,采用给宿主机添加一块虚拟网卡作为虚拟机内网连接。

①添加虚拟网卡MS KM-TEST环回

Win+Ràhdwwiz

图 1.21

选择手动

图 1.22

选择网络适配器

图 1.23

选择Microsoft KM-TEST环回适配器

图 1.24

②配置内网参数

Win+Ràncpa.cpl,配置刚才添加的虚拟网卡KM-TEST

图 1.25

按照规划的内网ip配置,同时填写当地的DNS。

图 1.26

③在VMware workstation上配置网络

VMware workstation上“虚拟机à设置”如图1.27所示,在第1章最小安装只有一张网NAT①,选中该网卡,点击②“添加”,就会出现网络适配器2,选中该网卡,右边④择自定义处选VMnet0

图 1.27

按照上面步骤,再添加一张网卡,选择VMnet1。

VMware workstation上“虚拟机à编辑”,选择“虚拟网络编辑器”,如图1.28所示,编辑器里有三张网卡,NAT略过,双击VMnet0选择桥接到物理网卡;然后双击VMnet1桥接到KM-TEST环回网卡。

注意:这三张网卡要分别位于不同的网段:

NAT          192.168.137.0/24

VMnet0   192.168.0.0/24    物理网卡连接的DHCP自动获取

VMnet1   100.100.100.0/24   规划的内网

图 1.28

④启动虚拟机,查看ip地址,此时可以看见虚拟网卡上三张网卡ens33、ens36、ens37。ens33是NAT,在1.3节中通过DHCP获得了ip地址。可以按照1.3和3.3节的方法,给ens36、ens37设置固定IP。这里我们将其设置为192.168.0.100/24和100.100.100.200/24,步骤略。

图 1.29

3.5 在虚拟机中生成本课程所需的10个容器,为了便于其他主机访问容器,每个容器的网络以macvlan的方式与vmnet0桥接,以后需要时再给每个容器添加一张内网网卡,连接到100.100.100.0/24网段上。

规划各个服务器的IP地址及IP,如表1-1所示。

表1-1 生成容器规划

功能

ip

连接网络

端口

DHCP

192.168.0.201/100.100.100.201

ens36 wuzzphy/ens37 nei

67-68

DNS

192.168.0.202/100.100.100.202

ens36 wuzzphy/ens37 nei

53

NFS

192.168.0.203/100.100.100.203

ens36 wuzzphy/ens37 nei

2049

SAMBA

192.168.0.204/100.100.100.204

ens36 wuzzphy/ens37 nei

139      445

APACHE

192.168.0.205/100.100.100.205

ens36 wuzzphy/ens37 nei

80

FTP

192.168.0.206/100.100.100.206

ens36 wuzzphy/ens37 nei

20    21

EMAIL

192.168.0.207/100.100.100.207

ens36 wuzzphy/ens37 nei

smtp25   pop3  110

PROXY

192.168.0.208/100.100.100.208

ens36 wuzzphy/ens37 nei

TFTP

192.168.0.209/100.100.100.209

ens36 wuzzphy/ens37 nei

69

TELNET

192.168.0.210/100.100.100.210

ens36 wuzzphy/ens37 nei

23

按照下面的格式,分别生成10个容器:

docker run -itd -e “container=docker” --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup -v /wutool:/wutool -v /mnt:/mnt -v /etc/yum.repo.d/:/etc/yum.repo.d/ --net wuzzphy --ip 192.168.0.201 --name dhcp centos /usr/sbin/init

-i                Keep STDIN open even if not attached交互

-t                Allocate a pseudo-TTY               虚终端显示

-d                Run container in background and print container ID

-e                环境设置

--privileged=true 指定容器具备特权

-v                卷映射,和宿主机共享卷

--net             Connect a container to a network

--ip              指定一个静态的ip地址

--name            容器名称

-p                主机和容器间端口映射

/usr/sbin/init    启动容器之后可以使用systemctl方法

下面是容器操作的常用方法

#docker search                        //搜索镜像(现在无法正常使用,估计要钱)

#docker pull                          //拉取镜像

#docker ps -a                         //查看容器

#exit                                  //退出并关闭容器

#ctl+p+q                              //退出容器,保留容器进程

#docker start nfs                   //启动容器nfs

#docker exec -it nfs /bin/bash   //进入启动的容器nfs

#docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=ens36 wuzzphy

#docker network ls                 //查看网卡

#docker network connect nei nfs  //将网卡连接到nfs上

# history | grep 'docker run’    //查看历史上生成过哪些容器

#docker rm samba -f                //强制删除samba容器

################

至此,我们完成了本地yum的搭建、多重网络部署、docker的安装及初步的镜像拉取等,为过后的服务器部署打下了基础。

我为啥要用docker?主要是几台机器都是老爷机,如果用GUI的虚拟机来搭建各种服务的话,必定会拖不动。而用最小化安装的Centos8+docker的方式,可以秒级启动20个服务,虚拟主机只要2核、内存只要6G就足够了。目前我唯一没有实现的是docker容器下的DHCP及其中继的搭建,想了很多方法,都没有好的解决方案。可能是对docker容器连网的特性没有掌握好。该实验暂时我就用传统的虚拟机来做。敬请期待!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb图书借阅系统

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 spring-mybatis.xml3.5 spring-mvc.xml3.5 login.jsp 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平台Java领域优…

【机器学习】——决策树以及随机森林

文章目录 1. 决策树的基本概念与结构1.1 决策树的构建过程 2. 决策树的划分标准2.1 信息增益&#xff08;Information Gain&#xff09;2.2 信息增益比&#xff08;Information Gain Ratio&#xff09;2.3 基尼指数&#xff08;Gini Index&#xff09;2.4 均方误差&#xff08;…

HJ50-四则运算:栈的运用、中缀表达式转后缀表达式并计算结果

文章目录 题目一、分析1.1表达式预处理1.2中缀表达式转后缀1.3 后缀表达式计算结果 二、答案 题目 一、分析 通过利用栈将中缀表达式转换为后缀表达式&#xff0c;在根据后缀表达式计算运算结果。由于包含负数操作数的情况&#xff0c;并且操作数位数不固定为1&#xff0c;因此…

USB 3.1 标准 B 型连接器的接口定义与引脚分配

连接器 USB 3.1 规范定义了以下连接器&#xff1a; 超速标准 A 插头和插座&#xff1b;超速标准 B 插头和插座&#xff1b;超速 Micro B 插头和插座&#xff1b;超速 Micro A 插头&#xff1b;超速 Micro-AB 插座。 所有超速连接器具有相同的配合接口并且彼此兼容。 下表列…

腾讯云SDK购买流程

音视频终端 SDK 需购买对应 License/套餐获得使用授权&#xff0c;本文将对购买 License/套餐的操作进行详细指引。 您可首先参考计费概述 确认您需要购买的内容&#xff0c;随后参考本文进行购买。本文仅提供 SDK 授权费用所需资源的购买&#xff0c;如果您需要使用其他相关云…

锦天云中秋之夜团圆家宴圆满成功

2024年9月7日&#xff0c;锦天云&#xff08;深圳&#xff09;计算机设备有限公司 在中国深圳成功举办了“融创智合•月满锦天 锦天云中秋之夜团圆家宴。本次盛会吸引了来自各行业的精英和合作伙伴&#xff0c;大家齐聚一堂&#xff0c;共同庆祝这一传统佳节&#xff0c;此次活…

SPI驱动学习七(SPI_Slave_Mode驱动程序框架)

目录 一、SPI_Slave_Mode驱动程序框架1. Master和Slave模式差别1.1 主设备 (Master)1.2 从设备 (Slave)1.3 示例 2. SPI传输概述2.1 数据组织方式2.2 SPI控制器数据结构 3. SPI Slave Mode数据传输过程4. 如何编写程序4.1 设备树4.2 内核相关4.3 简单的示例代码4.3.1 master和s…

K8S真正删除pod

假设k8s的某个命名空间如&#xff08;default&#xff09;有一个运行nginx 的pod&#xff0c;而这个pod是以kubectl run pod命令运行的 1.错误示范&#xff1a; kubectl delete pod nginx-2756690723-hllbp 结果显示这个pod 是删除了&#xff0c;但k8s很快自动创建新的pod,但是…

今日指数项目股票成交量对比功能

股票成交量对比功能 1. 股票成交量对比功能分析 1.1 模型示列 功能描述&#xff1a;统计A股大盘T日和T-1日成交量对比功能&#xff08;成交量为沪深两市成交量之和&#xff09; 1.2 接口示列 返回数据格式 服务路径&#xff1a;/api/quot/stock/tradeAmt 服务方法&#xf…

PCL uniform_sampling均匀采样抽稀

目录 一、概述二、代码三、结果 一、概述 均匀采样抽稀点云。 二、代码 uniform_sampling.cpp #include <iostream> #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pcl/keypoints/uniform_s…

[Admin] Things Need to Know

List View Bulk Actions Highlight: To take bulk actions on all of the available records in a list, you click the bulk action button without selecting any records.

利士策分享,攀登职场高峰:成功者的十大特质

利士策分享&#xff0c;攀登职场高峰&#xff1a;成功者的十大特质 在职场这个竞争激烈的舞台上&#xff0c;那些能够迅速崛起、实现职业辉煌的佼佼者&#xff0c;往往凭借一系列独特且鲜明的特质脱颖而出。以下是对这些特质的深入探讨&#xff1a; 第一章&#xff1a;高情商的…

怎么不用付费直接编辑pdf?5款pdf在线编辑器免费推荐给你!

在我们日常工作中&#xff0c;可能会经常需要直接编辑修改pdf内容&#xff0c;例如&#xff0c;在将文档发送给其它人之前&#xff0c;您可能需要进行一些修改&#xff1b;或者当扫描的文本出现错误时&#xff0c;您也需要进行修正。此时&#xff0c;如果有一款在线编辑器&…

黑神话悟空小西天

游戏里我们一开始就出现一个很可爱的小和尚&#xff0c;当脚步声传来&#xff0c;小和尚化身为一尊弥勒佛&#xff0c;而这尊弥勒佛的大小和位置都在说&#xff0c;这里没有弥勒佛的位置。 随后天命人进入一片雪地&#xff0c;遇到了赤尻马猴&#xff0c;打跑赤尻马猴&#xff…

从哪里下载高清解压视频素材?推荐五个优质素材资源网站

想制作吸引人的抖音小说推文&#xff0c;但不知道从哪里获取高清解压视频素材&#xff1f;今天就为大家推荐五个优秀的网站&#xff0c;帮助你轻松找到所需的素材&#xff0c;提升你的创作质量。 首先是蛙学网 作为国内顶级的短视频素材网站&#xff0c;蛙学网提供了丰富的4K高…

Transformer是不是BERT、GPT的妈?看完就知道了

Transformer变异衍生出来了两个超强悍的预训练模型 一、Transformer模型 Transformer是近年来深度学习领域中备受瞩目的模型之一&#xff0c;其核心思想是通过自注意力机制和位置编码来捕捉输入序列中的长距离依赖关系。 自注意力机制让模型在处理每个输入元素时能够关注到所有…

Proe 5.0资源百度网盘下载 附详细安装步骤

如大家所了解的&#xff0c;Proe又称作Pro/E&#xff0c;是比较常用的CAD/CAM/CAE软件之一&#xff0c;也是一款功能齐全的模具和产品设计三维的工具。 Proe在传统机械设计、家电设计以及模具设计方面&#xff0c;优势很突出。 首先&#xff0c;建模采用参数化设计&#xff0…

Qt/C++ 解决调用国密SM3,SM4加密解密字符串HEX,BASE64格式转换和PKCS5Padding字符串填充相关问题

项目中遇到了需要与JAVA WEB接口使用SM3,SM4加密数据对接的需求&#xff0c;于是简单了解了下SM3与SM4加密算法在C环境下的实现。并使用Qt/C还原了在线SM3国密加密工具和在线SM4国密加密解密工具网页的示例功能的实现 目录导读 前言SM3算法简介SM4算法简介 实现示例字符串HEX,B…

气膜影院:沉浸式观影体验的全新选择—轻空间

随着观影需求的不断提升&#xff0c;传统影院形式已经无法满足观众对更高沉浸感和视觉体验的追求。气膜影院作为一种新兴的观影场所&#xff0c;以其独特的球幕结构和先进的技术手段&#xff0c;为观众带来了全新的沉浸式视听体验。 全景沉浸式观影体验 气膜影院采用球幕设计&a…

Awcing 799. 最长连续不重复子序列

Awcing 799. 最长连续不重复子序列 解题思路: 让我们找到一个数组中&#xff0c;最长的 不包含重复的数 的连续区间的长度。 最优解是双指针算法&#xff1a; 我们用 c n t [ i ] cnt[i] cnt[i]记录 i i i 这个整数在区间内出现的次数。(因为每个数的大小为 1 0 5 10^5 105, …