一、win11安装虚拟机
bash
1. 安装虚拟机软件
VMware Workstation Pro / Player (推荐,功能强)
去 VMware 官网下载,官网地址:https://www.vmware.com/go/getworkstation-win
安装完成后重启 Windows。
2. 创建 Linux 虚拟机
打开 VMware → 新建虚拟机。
选择 安装镜像文件(ISO),加载你下载的 Linux 发行版(Ubuntu/CentOS/Debian 等)。 Centos6 地址:地址:https://wiki.centos.org/Download
分配资源:
CPU:2核以上
内存:2GB
磁盘:30GB 以上(动态分配即可)
网络设置推荐选择 桥接模式(Bridged) 或 NAT 模式(要能和宿主机互通)。
3. xshell连接
打开终端,ip addr 查看ip地址,xshell连接

参考文章:https://www.cnblogs.com/malinyan/p/17070921.html
二、docker安装
bash
1、查看操作系统版本是否是 CentOS7 及以上
cat /etc/redhat-release
2、查看 CentOS7 的内核版本,Docker 要求 CentOS7 系统必须为 64 位,且系统内核版本为 3.10 及以上
uname -r
以下步骤请以root用户运行指令,如果不是以 root 用户运行,请在指令的最前面加上sudo,表示以系统管理者 (root) 的身份执行指令
3、卸载旧版本 (如果之前没有安装过旧版本的 docker 可以跳过)
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
4、安装 docker 所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2

bash
这个报错说明 CentOS 虚拟机里 yum 无法联网,所以取不到镜像源。常见原因和解决方法如下
1. 检查虚拟机网络
先确认虚拟机能否上网:
ping www.baidu.com
ping 8.8.8.8
如果 8.8.8.8 能 ping 通,但域名(百度)ping 不通 → DNS 问题。
如果 都 ping 不通 → 虚拟机没联网(VMware/VirtualBox 网络配置有问题)
这里我两个都能ping 通
#!/bin/bash
# 适用于 CentOS 7,替换 yum 源为阿里云镜像
echo ">>> 备份原有 repo 文件..."
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ 2>/dev/null
echo ">>> 下载阿里云 CentOS7 repo..."
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
echo ">>> 清理缓存并生成缓存..."
yum clean all
yum makecache
echo ">>> 完成!可以试试安装软件,比如: yum install -y net-tools"
编写脚本,粘贴上面代码
vi fix_yum.sh
chmod +x fix_yum.sh
./fix_yum.sh
#!/bin/bash
# 适用于 CentOS7,安装 Docker + docker-compose v2.27.1
set -e
echo ">>> 卸载旧版本 Docker(如果有)..."
yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine || true
echo ">>> 安装依赖..."
yum install -y yum-utils device-mapper-persistent-data lvm2
echo ">>> 添加 Docker 官方 repo..."
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
echo ">>> 安装 Docker 引擎..."
yum install -y docker-ce docker-ce-cli containerd.io
echo ">>> 启动 Docker 并设置开机自启..."
systemctl start docker
systemctl enable docker
echo ">>> 下载并安装 docker-compose v2.27.1..."
curl -L "https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
echo ">>> 验证版本..."
docker --version
docker-compose version
echo ">>> 安装完成!🚀"
编写脚本,执行如上命令,此时安装Docker 最新版(docker-ce)
bash
报错 Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
说明 Docker 可以运行,但访问 Docker Hub(registry-1.docker.io)超时。常见原因有:
虚拟机能上网,但访问国外网站慢/被墙
Docker Hub 在国外,国内直连经常超时。
DNS 解析慢/失败
虚拟机里 DNS 没配好,导致 registry-1.docker.io 解析不了。
代理没配置
如果宿主机走代理(VPN),但 Docker 没配,就连不上
bash
解决方案(换国内镜像数据源)
#!/bin/bash
# 一键配置 Docker 国内镜像源(适用于 CentOS7)
set -e
echo ">>> 创建 /etc/docker 目录..."
mkdir -p /etc/docker
echo ">>> 写入国内镜像源配置..."
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://mirror.ccs.tencentyun.com",
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com"
]
}
EOF
echo ">>> 重新加载并重启 Docker..."
systemctl daemon-reexec
systemctl restart docker
echo ">>> 配置完成!现在可以尝试: docker pull hello-world"
查看 docker 是否安装成功
三、常用的docker命令
bash
//启动docker
systemctl start docker
//停止docker
systemctl stop docker
//重启docker
systemctl restart docker
//设置docker开机自启
systemctl enable docker
//启动容器
docker start 容器ID/容器名称
//重启容器
docker restart 容器ID/容器名称
//停止容器
docker stop 容器ID/容器名称
//强制停止容器
docker kill 容器ID/容器名称
// 查看docker 版本信息
docker version
//查看镜像
docker images
//查看所有镜像(包含中间镜像层)
docker images -a
// 查找镜像
docker search 镜像名称
// 获取镜像元信息
docker inspect 镜像ID/镜像名称[:版本号]
docker inspect 容器ID/容器名称
// 拉取镜像
docker pull 镜像名称[:版本号]
//删除单个镜像
docker rmi 镜像ID/镜像名称[:版本号]
//-f:表示强制删除,强制删除单个镜像
docker rmi -f 镜像ID/镜像名称[:版本号]
//删除多个镜像
docker rmi [-f] 镜像1ID/镜像1名称[:版本号] 镜像2ID/镜像2名称[:版本号]
//删除已停止的容器
docker rm 容器ID/容器名称
//-f:表示强制删除,删除正在运行的容器
docker rm -f 容器ID/容器名称
//删除全部的容器
docker rm -f $(docker ps -qa)
//以交互模式运行容器
docker run -it -v 宿主机目录/文件的绝对路径:容器内目录/文件的绝对路径[:rw/ro] -p 主机端口:容器端口 --name=容器名称 镜像ID/镜像名称[:版本号]
//以后台方式运行容器 (推荐)
docker run -d -v 宿主机目录/文件的绝对路径:容器内目录/文件的绝对路径[:rw/ro] -p 主机端口:容器端口 --name=容器名称 镜像ID/镜像名称[:版本号]
//以exec方式进入到容器
docker exec -it 容器ID/容器名称 /bin/bash 或 /bin/sh
//以attach方式进入到容器
docker attach 容器ID/容器名称
//如果不想进入容器,直接获取相关指令的运行结果,可在后面填写相关操作指令
docker exec -it 容器ID/容器名称 相关命令
//退出并停止容器
exit
//退出但容器不停止
ctrl + p + q
//查看当前运行的容器
docker ps
//查看所有容器 (运行和停止的)
docker ps -a
//查看容器日志并显示时间戳
docker logs -t 容器ID/容器名称
//持续输出容器日志
docker logs -f 容器ID/容器名称
//查看最后n条容器日志
docker logs --tail n 容器ID/容器名称
// 查看容器日志
docker logs -f -t 容器ID/容器名称
docker 镜像的备份、恢复与迁移
bash
1、docker 镜像的备份 (导出)
docker save -o 镜像导出文件(格式为tar压缩文件) 镜像ID或镜像名称[:版本号]
或
docker save 镜像ID或镜像名称[:版本号] > 镜像导出文件(格式为tar压缩文件)
示例:
docker save -o $(pwd)/mytomcat.tar newtomcat:v1.0
或
docker save newtomcat:v1.0 > $(pwd)/mytomcat.tar
2、docker 镜像的迁移与恢复 (导入)
docker load -i 镜像导出文件(格式为tar压缩文件)
或
docker load < 镜像导出文件(格式为tar压缩文件)
示例:
docker load -i $(pwd)/mytomcat.tar
或
docker load < $(pwd)/mytomcat.tar