【版本】
当前版本号v20241018
版本 | 修改说明 |
---|---|
v20241018 | 修改镜像源配置,删除不提供服务的镜像源 |
v20240829 | 增加Docker源 |
v20231130 | 修改阿里云的源为HTTP协议,避免证书下载失败 |
v20231104 | 优化重新启用网口的命令 |
v20221105 | 加入常见问题 |
v20211025 | 初始化版本 |
任务5.1 复制虚拟机并进行配置
【任务目的】
- 掌握 Virtualbox 虚拟机的复制
- 掌握虚拟机双网卡的配置
- 掌握 Rockylinux 的源的配置和替换
【任务环境】
- VirtualBox
- FinalShell
【任务资源】
- 其他版本的 Cirros 下载地址>>
【任务步骤】
复制虚拟机
复制任务1的模板虚拟机。
重新命名为
docker
。选择完全复制。
选择“当前虚拟机状态”会丢失快照,而选择“全部”则会保留快照。
配置虚拟机网卡
为了让虚拟机能够同时联网,也能够让宿主机进行SSH连接,需要给虚拟机配置2块网卡。网卡1使用“Host-Only”的方式;网卡2使用NAT组网,用于上网。
打开
docker
虚拟机的设置,确认网卡1的配置。打开
docker
虚拟机的设置,配置网卡2,连接方式
选用网络地址转换(NAT)
。使用
root
账号登录docker
虚拟机。查看网卡信息。
ip a
- 可以看到新的网卡,一般名字为
enp0s8
- 备份网卡配置,复制
enp0s3
网卡的配置,并配置新的网卡enp0s8
。
cd /etc/sysconfig/network-scripts/
mkdir bak
cp ifcfg-enp0s3 ./bak
cp ifcfg-enp0s3 ifcfg-enp0s8
- 修改网卡
enp0s8
的配置。
vim /etc/sysconfig/network-scripts/ifcfg-enp0s8
- 修改网卡名和设备名为
enp0s8
NAME=enp0s8
DEVICE=enp0s8
- 修改启动协议为
DHCP
BOOTPROTO=dhcp
- 修改UUID的值,只要和原来的值不一样就可以了。以下值仅供参考。
UUID=67d1127a-53ca-48f4-aa82-a2f2766a2f19
- 新增以下路由优先级,保障路由优先走
enp0s8
网卡
IPV4_ROUTE_METRIC=99
- 注释掉以下内容,就是在行前加
#
符号。
#IPADDR=10.0.0.70
#PREFIX=24
#GATEWAY=10.0.0.254
#DNS1=223.5.5.5
- 保存
enp0s8
的配置,重新启用网口。
nmcli con reload
nmcli con down enp0s8
nmcli con up enp0s8
再次查看网卡配置是否生效。正常情况应该可以看到每个网卡下的 IP 配置。
改变虚拟机的主机名为“学号后3位+姓名”,比如“999qzm”。
sudo hostnamectl set-hostname 999qzm
测试联网
确保自己的电脑连上互联网。
测试是否能够上网。
ping www.baidu.com -c 3
- 正常联网的情况下,会返回类似以下信息:
PING www.a.shifen.com (14.119.104.189) 56(84) bytes of data.
64 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=1 ttl=54 time=12.8 ms
64 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=2 ttl=54 time=10.5 ms
64 bytes from 14.119.104.189 (14.119.104.189): icmp_seq=3 ttl=54 time=10.9 ms
- 联网失败会显示类似以下信息:
PING www.a.shifen.com (14.119.104.254) 56(84) bytes of data.
From 999qzm (10.0.0.70) icmp_seq=1 Destination Host Unreachable
From 999qzm (10.0.0.70) icmp_seq=2 Destination Host Unreachable
From 999qzm (10.0.0.70) icmp_seq=3 Destination Host Unreachable
如果不能上网,查看路由信息,看看是否enp0s8网卡的路由排在第一位。
更换源为阿里云的源
- 恢复原有的源。
cd /etc/yum.repos.d/
cp ./test/*.repo ./
mv local.repo ./test
- 查看源配置目录下是否存在以下配置文件。
ls /etc/yum.repos.d
- 查看源配置
cat /etc/yum.repos.d/Rocky-BaseOS.repo
- 替换为阿里云的源
sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' -i.bak /etc/yum.repos.d/Rocky-*.repo
sed命令 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
查看源配置是否已更换为阿里云的配置。
下载 Docker 源配置。
dnf install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 查看源目录是否已下载好 Docker 的源配置。
ls /etc/yum.repos.d/docker-ce.repo
- 更新源缓存。
dnf clean all
dnf makecache
任务5.2 安装 Docker-CE
【任务目的】
- 掌握 Docker-CE 的安装
【任务环境】
- VirtualBox
- FinalShell
【任务背景】
- Docker CE指的是docker社区版,用于为了开发人员或小团队创建基于容器的应用,与团队成员分享和自动化的开发管道。
【任务步骤】
安装 Docker-CE
- 安装 Docker-CE
dnf -y install docker-ce
- 启动 Docker。
systemctl start docker
- 查看 Docker 服务的状态是否为
active
。
systemctl status docker
- 设置 Docker 为开机启动
systemctl enable docker
- 查看 Docker 的版本
docker version
- 正常应该可以看到以下类似内容:
Client: Docker Engine - Community
Version: 24.0.5
API version: 1.43
Go version: go1.20.6
Git commit: ced0996
Built: Fri Jul 21 20:36:32 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.5
API version: 1.43 (minimum version 1.12)
Go version: go1.20.6
Git commit: a61e2b4
Built: Fri Jul 21 20:35:32 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.22
GitCommit: 8165feabfdfe38c65b599c4993d227328c231fca
runc:
Version: 1.1.8
GitCommit: v1.1.8-0-g82f18fe
docker-init:
Version: 0.19.0
GitCommit: de40ad0
任务5.3 切换 Docker 仓库镜像源
【任务目的】
- 掌握 Docker-CE 的仓库源的修改
【任务环境】
- VirtualBox
- FinalShell
【任务背景】
- Docker 可以从仓库下载镜像,但是默认的仓库镜像源下载速度较慢,可以更换为国内的仓库保证镜像下载速度。
【任务步骤】
- 编辑仓库镜像源配置文件。
vim /etc/docker/daemon.json
- 加入以下内容
{
"registry-mirrors": ["https://docker.1panel.live","https://hub.rat.dev"]
}
阿里云镜像加速(需要注册获取你自己的ID) https://{your_id}.mirror.aliyuncs.com
Docker镜像加速站 http://docker.1panel.live https://hub.rat.dev https://doublezonline.cloud https://hub.atomgit.com/repos (只包含基础镜像)
- 更新配置并重启 Docker 进程
systemctl daemon-reload
systemctl restart docker
- 查看配置的仓库镜像源是否生效。
docker info
- 查看以下选项
Registry Mirrors
是否存在你配置的镜像源。
Registry Mirrors:
https://docker.1panel.live
https://hub.rat.dev
【常见问题】
1. Docker 守护进程(daemon)启动失败
解决办法:
- (1)配置错误:Docker 的配置文件中可能存在错误,导致守护进程无法启动。解决方法是检查 Docker 配置文件(通常位于
/etc/docker/daemon.json
)并修复配置错误。 - (2)日志分析:查看 Docker 守护进程的日志文件可以提供更多关于启动失败的信息。Docker 的日志文件通常位于
/var/log/docker.log
或/var/log/syslog
。通过查看日志文件,你可以获取更多的错误消息和上下文信息,从而更好地诊断和解决问题。
2. 启动 Docker 服务出错,提示“dockerd: failed to start daemon: Devices cgroup isn’t mounted”。
答:需要加入 grub 启动参数systemd.unified_cgroup_hierarchy=0
(1)重启虚拟机,在菜单选项界面按
e
进行启动参数编辑。(2)在参数界面进行编辑,可以按方向键到文件最后,加入新的一行,输入
systemd.unified_cgroup_hierarchy=0
。(不编辑可以按Esc
退出)(3)按下
Ctrl
+X
启动。(4)在虚拟机重新启动 Docker 进程。
systemctl start docker