云与虚拟化 1-2实验

步骤1

在可联网的主机上制作docker本地安装包。
yum -y install ntpdate yum-utils
ntpdate ntp.aliyun.com

步骤2

创建离线安装包
mkdir -p /opt/docker
chmod -R 777 /opt/docker

先启动一个centos容器

docker run -it --privileged -v /opt/docker:/opt/docker centos:7 bash

在容器里进入目录

cd /opt/docker

添加镜像源:

yum-config-manager --add-repo http://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

步骤 3

下载离线包到/opt/docker
# 下载依赖
yum install --downloadonly --downloaddir=/opt/docker yum-utils device-mapper-persistent-data lvm2 createrep

ls

# 安装仓库制作器?
yum install -y device-mapper-persistent-data lvm2 createrepo
yum makecache fast
yum install --downloadonly --downloaddir=/opt/docker/ docker-ce-18.03.0.ce

#下载KEY
cd /opt/docker/
yum install -y wget
wget https://download.docker.com/linux/centos/gpg

# 加入仓库数据
createrepo -pdo /opt/docker /opt/docker
createrepo --update /opt/docker

cd /opt/docker/
ll
tar -zcvf docker-local.tar.gz *

退出当前容器

CTRL+P+Q

删除容器,这里要一一对应。

docker ps -a 
docker stop 

docker stop 7ea
docker rm 7ea

步骤4 在离线的主机上安装docker

离线主机

1. 解压一个docker_c7

然后恢复到init的时候

2. 想法子把刚刚生成的/opt/docker/docker-local.tar.gz 复制出来,然后放到新的虚拟机上

我这里用了termius直接SFTP拖出来了
然后制作一个iso,linux的话直接用这个命令,windows用软碟通也可以。

yum install genisoimage
mkisofs -o centos_7_docker.iso /opt/docker/docker-local.tar.gz

3. 启动虚拟机安装

移除网络适配器,挂载iso

4. 开机安装

#版本号
uname -r        //查看Linux内核版本号
#步骤2:关闭防火墙,并查询防火墙是否关闭。
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

#步骤3:修改/etc/selinux目录下的config配置文件,设置SELINUX为disabled后,保存并退出。
setenforce 0
vi /etc/selinux/config
SELINUX=disabled                // 将SELINUX设置为disabled

步骤4:将centos的ISO镜像文件和docker-local.tar.gz文件上传到离线的主机,本任务将文件复制到/opt目录,并将centos的ISO镜像文件挂到/opt/centos目录,将docker-local.tar.gz文件解压到/opt/docker目录。

#因为文件在iso里,先挂载
mkdir -p /mnt/cd
#挂载磁碟
mount /dev/cdrom /mnt/cd
cd /mnt/cd
ls -al

#复制文件
mkdir -p /opt/docker /opt/centos

#k拷贝文件
cp docker_1.tgz /opt/docker

#解压文件
cd /opt/docker

tar -zxvf docker_1.tgz

image-20231019124636051

步骤5:配置docker-ce的yum源。

rm -ivf /etc/yum.repos.d/*.repo  // 删除原有的repo文件
vi /etc/yum.repos.d/docker-ce.repo
// 添加如下内容
[docker]
name=docker ce
baseurl=file:///opt/docker
gpgcheck=0
enabled=1
gpgkey=file:///opt/docker/gpg

[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
保存退出(:wq)

挂载centosDVD

下载镜像文件:

自动选地址:http://mirrors.cernet.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

USTC:https://mirrors.ustc.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso

感觉齐工大的不是很快。

换碟

image-20231019125819247

umount /dev/cdrom
mount /dev/cdrom /opt/centos
ls /opt/centos

image-20231019130259356

继续:

yum clean all
步骤6:安装createrepo。
yum -y install deltarpm libxml2-python python-deltarpm createrepo
createrepo -d /opt/docker/repodata
yum clean all
yum makecache fast
步骤7:安装docker-ce,并检查docker-ce是否安装成功。
yum -y install docker-ce
systemctl start docker
systemctl enable docker 
docker version

image-20231019124743689

image-20231019124945753

image-20231019130432045

到此完成。

下面是失败的尝试过程

特权容器安装(失败)

忽略bia

这里直接启动centos:7 容器来安装,假装他是一个虚拟机,开的时候给特权容器。

启动一个特权容器

并且把主机的目录映射到容器里

docker run -it --privileged -v /opt/docker:/opt/docker centos:7 bash

执行命令

# 查看内核版本号
uname -r

# 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

因为容器没有内核,这些命令可能会失败。

解压安装

看好在容器里再执行!(就是hostanme是一些字母)

这里原计划书解压目录有点问题

tar -zxvf /opt/docker/docker-local.tar.gz -C  /opt/docker
rm -ivf /etc/yum.repos.d/*.repo
vi /etc/yum.repos.d/docker-ce.repo

写入:
i 插入 wq保存

[docker]
name=docker ce
baseurl=file:///opt/docker
gpgcheck=0
enabled=1
gpgkey=file:///opt/docker/gpg

[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1

安装

yum clean all


yum -y install deltarpm libxml2-python python-deltarpm createrepo
createrepo -d /opt/docker/repodata
yum clean all
yum makecache fast

这里失败了,估计是没内核的事情,但按理说应该可以成功。

最后修改:2023 年 11 月 23 日
如果觉得我的文章对你有用,请随意赞赏