头图

Docker专栏-第2篇 无外网基于Centos7.9离线安装Docker

虚拟机系统:centos 7.9 2009(准备两个iso,一个minimal用于快速安装系统,一个DVDEverything用于挂载成本地源)

虚拟平台:Vmware 17.5.2

主机系统:windows 11 24h2

关键词: Docker,centos,离线环境,无网环境

1.下载centos 7.9

进入https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/
image.png
下载minimal iso安装

下载everything iso做后续本地的源

2.安装centos7

2.1 新建虚拟机

在vmware中文件菜单点新建

image.png

定位到我们下载的minimal光盘

image.png
根据自己电脑的实际情况放到对应的位置,并取好名称。

image.png
下一步,设置磁盘大小为60GB (如509资源少,就给20GB或30GB,自己根据情况确定)

image.png
进入硬件配置,默认的配置较少
image.png
点自定义硬件,主力机器,给4GB内容,4个CPU (如509资源少,就给2GB,2个CPU)
image.png
确定结束,虚拟机创建完毕。

2.2 启动虚拟机,安装系统

启动界面选择Install CentOS 7
image.png
进入安装语言选择界面
image.png
下滑选择中文,结果如下
image.png
点击继续,进入安装配置界面
image.png
将有!号的选项设置一下(安装位置点开后,左上角点完成自动分区即可)
image.png
点击网络与主机名
image.png
补充信息:vmware中编辑菜单-》虚拟网络编辑器打开,可以看到vmware虚拟机默认的网关和可用网段
image.png
右上角打开网络,并根据vmware的网关信息,设置信息IP
image.png
点配置

image.png
切换至ipv4设置
image.png
将自动(dhcp)改为手动,再填入上面获取的信息即可。后续我们也可以直接在主机中更改网络信息.网络配置文件一般存于/etc/sysconfig/network-scripts/目录,文件名格式为ifcfg-<接口名>。比如,若要修改eth0的 IP 地址,就要编辑ifcfg-eth0文件。
image.png
点保存,在网络和主机名设置主页面设置主机名,我这里设置为”dockeroncentos“,点击应用,使其生效。
image.png
点击左上角完成,返回如下页面
image.png
点开始安装
image.png
点击root密码,设置为root(本机),因为密码太短,所以需要连续点击2次完成,生效。
image.png
返回安装界面,等待完装完成。
image.png

3.配置Yum本地源

3.1 使用vmware挂载centos dvd 或everything的iso光盘文件

一、选定主机,确保虚拟机处于关机状态
image.png
二、点击编辑虚拟机配置,打开cd/dvd设置,定位好iso
image.png
光驱挂载页面定位到我们需要的dvd或everything的iso光盘文件,设备状态中要选择“启动时连接”
image.png

3.2 确保iso挂载正常

使用lsblk查看

lsblk

输出结果,中间有sr0,则代表已正常挂载。

image.png
也可以使用blkid查看

blkid

输出结果,中间有sr0,则代表已正常挂载
image.png

3.3 将iso的内容装载进/mnt

使用mount挂载光盘(特别注意:虚拟机重启后会失效,需要重新执行一次)

mount /dev/sr0 /mnt #当次有效,如果需要开启有效,需要在fstab中增加一条记录

image.png

vim /etc/fstab

添加下面的内容并保存,即可实现开机自动mount

/dev/sr0 /mnt iso9660 defaults 0 0

查看,是否装载成功

ls /mnt

image.png

3.4 将装载好数据配置成本地yum的源

备份并清空原有的yum配置文件目录,使用命令mv /etc/yum.repos.d /etc/yum.repos.d.backup将原目录备份,并创建一个新的yum源配置文件目录,使用命令mkdir -p /etc/yum.repos.d,截屏保存命令执行结果(图片标题为"备份并创建yum源目录")

备份并清空原有的yum配置

mv /etc/yum.repos.d /etc/yum.repos.d.backup

创建标准的目录

mkdir -p /etc/yum.repos.d #-p 代表如果父目录不存在会自动创建父目录

此时可以全手打,也可以复制一个原有的配置,再在里面改基本的配置

cp  /etc/yum.repos.d.backup/CentOS-Base.repo /etc/yum.repos.d/local.repo

然后将配置改为如下配置

[local]
name=Local Yum Repo
baseurl=file:///mnt
enabled=1
gpgcheck=0

3.5 重建yum数据库

清除yum缓存并重新生成元数据缓存

yum clean all

image.png

yum makecache

image.png

此时,yum本地仓库已完全建立

4.使用yum

4.1列出仓库中的软件包

执行命令

yum repolist

image.png

4.2安装vim

执行命令

yum install vim -y

image.png

4.3查看vim版本

vim --version

image.png

4.4打开vim

vim

image.png

4.安装Docker

3.1 内核版本检查

确保内核版本大于3.10及以上

uname -a

image.png

3.2 安装依赖

安装依赖(必须)

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

3.3 将Docker的二进制上传至虚拟机

进入https://download.docker.com/linux/static/stable/x86_64/
下载对应的文件(可以使用最新版本),也可以用本文的版本。
image.png
image.png
使用ls确认
image.png

3.4 解压Docker离线安装包并将文件复制到/usr/bin目录

使用tar解压

tar xvf docker-26.1.4.tgz 

image.png
查看解压后的效果

 ls 

image.png

将离线安装包复制到/usr/bin

cp -R  docker/* /usr/bin #-R代表支持递归,即里面有目录也是可以的。

image.png

3.5 将docker-compose放入/usr/bin

一、改名为docker-compose

mv docker-compose-linux-x86_64 docker-compose

二、增加可执行权限

chmod +x docker-compose

三、复制进/usr/bin

cp docker-compose /usr/bin/

3.6验证docker与docker-compose

验证docker

docker --version

image.png
验证docker-compose

docker-compose --version

image.png

3.7 创建Docker服务

创建Docker服务配置文件/etc/systemd/system/docker.service

vim /etc/systemd/system/docker.service

编辑输入下面的内容后,执行:wq保存并退出vim

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

确认是否保存成功

cat /etc/systemd/system/docker.service

image-20250508225222640
image.png
设置服务并开机启动

chmod +x /etc/systemd/system/docker.service #添加执行权限
systemctl daemon-reload #重新加载系统服务
systemctl start docker #启动docker引擎
systemctl enable docker #开机启动

image.png

3.8 查看Docker详细信息

docker info 
#docker inspect 镜像id 用于查看镜像信息
#docker stats 实时查看正在运行的容器的资源使用情况

image.png

3.9 配置Docker加速器

编辑/etc/docker/daemon.json

mkdir /etc/docker #确保docker目录存在
vim /etc/docker/daemon.json

配置内容如下

{
    "registry-mirrors": [
            "https://docker.m.daocloud.io",
            "https://hub-mirror.c.163.com",
            "https://docker.1ms.run",
            "https://mirrors.tencent.com",         
           "https://docker.mirrors.ustc.edu.cn"
    ],
  "dns" : [
    "114.114.114.114",
    "8.8.8.8"
  ]
}

保存并按下面的操作使镜像配置生效

# 这里有个坑,需要先分别停掉 docker.service 和 docker.socket,然后再重启,否则可能配置不会生效(还是从官方镜像源拉取)
sudo systemctl stop docker.service
sudo systemctl stop docker.socket
sudo systemctl start docker.service
sudo systemctl start docker.socket

sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl enable docker #使docker后台开机启动

也可以直接通过指定镜像源拉取:

docker pull m.daocloud.io/docker.io/library/ubuntu:latest

注:这种配置仅允许 Docker 信任该私库(不使用 HTTPS 校验证书),不会改变镜像拉取逻辑

码上世界 1179611323@qq.com

发行日志

20250518 初版


码上世界
90 声望302 粉丝

码农极客,2004年接触Linux世界。爱技术的IT的男