1.实例实验环境:
镜像:CentOS-Stream-8
2.初始化配置
#查看当前的网络连接信息
root@localhost \~\]# nmcli connection show #修改网络连接配置(如有警告或报错见附录) \[root@localhost \~\]# nmcli connection modify ens160 \\ \> ipv4.addresses 192.168.198.155/24 \\ \> ipv4.gateway 192.168.198.2 \\ \> ipv4.dns "192.168.198.2,114.114.114.114" \\ \> ipv4.method manual \\ \> connection.autoconnect yes #连通性测试(以谷歌的DNS为例) \[root@localhost \~\]# ping 8.8.8.8
3.更新yum包
#因为CentOS Stream 8 已于 2024 年 5 月停止维护,官方仓库
mirrorlist.centos.org已失效,需替换为第三方归档仓库(如阿里云、腾讯云的 CentOS 8 归档源)。#备份并删除原仓库配置
mkdir -p /etc/yum.repos.d/backup
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
#下载第三方仓库配置(以阿里云为例)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
#替换仓库中的版本标识(这里用的8版本,原仓库配置针对的是 CentOS 8.5)
sed -i 's/$releasever/8/g' /etc/yum.repos.d/CentOS-Base.repo
#清除缓存并且生成新的缓存
yum clean all yum makecache # 生成新的仓库缓存
#更新yum包
yum update
4.安装docker
#设置docker仓库
yum-config-manager --add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装Docker Engine软件包
#为了避免冲突,先卸载系统默认的容器引擎Podman,具体命令如下所示。
yum erase podman buildah
#执行命令安装Docker Engine,具体命令如下所示。
yum install docker-ce-20.10.21 docker-ce-cli-20.10.21 containerd.io-1.6.10
#验证
docker --version
5.配置Docker中央仓库的国内镜像源
#创建 Docker 配置目录
root@docker_dev \~\]# mkdir -p /etc/docker #配置 Docker 镜像源 \[root@docker_dev \~\]# vim /etc/docker/daemon.json { "registry-mirrors": \["https://docker.unsee.tech","https://mirror.ccs.tencentyun.com","https://[docker.m.daocloud.io](https://link.zhihu.com/?target=https://docker.m.daocloud.io "docker.m.daocloud.io")"
}
#重启守护进程并重启 Docker
root@docker_dev \~\]# systemctl daemon-reload \&\& systemctl restart docker
6.测试(docker部署MySQL)
root@docker_dev \~\]# docker pull mysql:5.6 \[root@docker_dev \~\]# mkdir \~/mysql \[root@docker_dev \~\]# cd \~/mysql \[root@docker_dev mysql\]# docker run -id \\ \> -p 3308:3306 \\ \> --name=c_mysql \\ \> -v $PWD/conf:/etc/mysql/conf.d \\ \> -v $PWD/logs:/logs \\ \> -v $PWD/data:/var/lib/mysql \\ \> -e MYSQL_ROOT_PASSWORD=123456 \\ \> mysql:5.6 /bin/bash \[root@docker_dev mysql\]# docker images; REPOSITORY TAG IMAGE ID CREATED SIZE mysql 5.6 dd3b2a5dcb48 3 years ago 303MB \[root@docker_dev mysql\]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 391cf3047d19 mysql:5.6 "docker-entrypoint.s..." 27 seconds ago Up 26 seconds 0.0.0.0:3308-\>3306/tcp, :::3308-\>3306/tcp c_mysql
附件:常见报错处理
#如果系统提示 【存在其他 1 条带有名称 "ens160" 的连接】可以先删除原本网卡
nmcli connection delete uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
#或者指定网卡的uuid进行修改
nmcli connection modify e87427a5-3883-41a3-8042-8cb4a3e07128 \
ipv4.addresses 192.168.198.155/24 \
ipv4.gateway 192.168.198.2 \
ipv4.dns "192.168.198.2,114.114.114.114" \
ipv4.method manual \
connection.autoconnect yes