Docker 运行一个 centos8 版本的系统

109 阅读2分钟

实验环境

1.虚拟机一台,系统centos即可(其他也行)
2.安装基础docker
3.能联通外网,配置好网络yum源

搭建步骤

// 拉取 CentOS 镜像,docker pull 应用名:tag 注意tag是可选项
docker pull centos

// 运行 CentOS 容器并启动 systemd 服务,添加端口映射
docker run -it --privileged -e "container=docker" -e "TERM=xterm" -v /sys/fs/cgroup:/sys/fs/cgroup:ro -d --name my-c8 -p 2222:22 centos /usr/sbin/init
/*命令解释:
docker run: 这是Docker命令的一部分,用于启动一个新的容器。
-it: 这个选项让Docker在交互模式下运行容器,并分配一个伪终端(pseudo-tty)。
--privileged: 这个选项赋予容器一些特权,例如访问主机的所有设备。
-e "container=docker": 这个选项设置环境变量container的值为docker。
-e "TERM=xterm": 这个选项设置环境变量TERM的值为xterm,这通常用于指定终端类型。
-v /sys/fs/cgroup:/sys/fs/cgroup:ro: 这个选项将主机上的/sys/fs/cgroup目录挂载到容器中的同名目录,并且以只读模式(ro)挂载。
-d: 这个选项让Docker在后台运行容器。
--name my-c8: 这个选项为容器指定一个名称,这里是my-c8。
-p 2222:22: 这个选项将容器内的端口22映射到主机的端口2222上。
centos /usr/sbin/init: 这是要运行的命令,即在容器内执行/usr/sbin/init来启动CentOS 8容器。
*/

// 在容器内执行以下命令
yum install -y openssh-server passwd
passwd root # 设置 root 密码,远程登录时用

// 启动 SSH 服务
systemctl enable --now sshd

// 获取容器 IP 地址
container_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' centos_ssh)
echo "Container IP: $container_ip"

// 从主机 SSH 连接到容器
ssh root@$container_ip

// 从 xshell 连接
ssh root@192.168.6.132:2222

附录

配置网络yum源

1.下载阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo 

2.下载华为源 
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-8-anon.repo