docker安装centos8.4最新系统

https://www.bilibili.com/read/cv16484446

 

1、拉取centos镜像并启动

我们的主要目的是创建一个centos系统,然后可以在任何地方远程ssh登陆它,这样就可以把docker出的这台centos当做服务器使用了。

# 查看centos有哪些镜像
docker search centos

# 拉取centos镜像
docker pull centos

# 查看拉取到的镜像
docker images

#查看更详细的centos信息
docker inspect centos

#创建并启动centos容器
docker run -itd -p 2060:22 -v /home/jason:/home/centos --name centos8 --privileged centos /usr/sbin/init
#进入到docker容器控制台
docker exec -it centos8 /bin/bash

参数--name设置container容器的名称,我们设置成centos8,如果为空则随机生成。

参数-p指定端口号,2060是宿主机的端口号,22是container的端口号,相当于把容器的22端口号映射到宿主机的2060。

参数-v设置主机与container的共享目录: 主机绝对路径:container绝对路径,我们这里把宿主机的/home/jason目录,映射到container的/home/centos,你在容器里是可以查到这个目录的。

参数centos对应的是镜像的名称。
2、给centos安装ssh

这里是容器里的操作,容器里开放22端口:

#更新centos源
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

#生成缓存更新
yum makecache

#升级安装包
yum update -y

#进行安装包的更新
yum upgrade -y

#安装ssh
yum -y install openssh-server

#启动ssh服务
systemctl start sshd

#安装passwd
yum install passwd -y

#修改root密码,输入passwd,然后输入修改的密码即可
passwd

#安装firewalld
yum install firewalld -y

#启动firewalld
systemctl start firewalld

#firewalld开放22端口
firewall-cmd --permanent --add-port=22/tcp

#安装net-tools,可以查看端口状态
yum install net-tools

#查看端口状态
netstat -ntlp

3、开放宿主机2060端口

这里是宿主机里操作,也就是安装docker的那台机器,宿主机开放2060端口。

#安装ufw开放2060端口
apt install ufw

#开放2060端口
ufw allow 2060

#安装net-tools
apt install net-tools

#查看ip地址
ifconfig

4、局域网登陆centos8

容器的22端口映射到宿主机的2060端口,然后就可以根据宿主机的ip来进行登陆到容器里了。有人说为啥不用容器里的IP,这里说明一下,我们物理机器上只有一根网线,一根网线就只有一个IP。容器里的IP是VIP,也就是虚拟IP,它不能在局域网里进行访问。当然你可以在宿主机进行访问这个VIP。

在windows PowerShell或者类似的远程连接工具里,输入ssh命令进行访问。

ssh -p 2060 root@192.168.31.226

参数-p指定端口号为2060。

参数root指定使用root用户登录。

参数192.168.31.226这里是宿主机的IP,注意不是容器的。因为我们只有一根网线,一根网线只有一个IP地址,所以容器和宿主机公用同一个IP地址。
5、远程ssh登陆容器

想要远程登陆到容器,必须把家里的这台机器暴露到互联网中。访问路径是:互联网任何地方的网络→家庭宽带光猫→家庭路由器→家庭交换机(如果有的话)→局域网宿主机→容器。

首先家里的宽带必须桥接,必须申请公网IP,光猫的管理权交给路由器,路由器开放特定机器的特定端口号。通过小米路由器设置,把家里的docker宿主机的2060端口号暴露到互联网,暴露的端口号为2022。

我家的公网IP现在是58.246.143.76,可以通过百度IP进行查看,现在就可以通过这个IP进行登录到docker容器了。网络的流程为:公网IP58.246.143.76:2022→宿主机192.168.31.226→容器:22。现在就可以通过公网IP加端口号登陆到ubuntu容器了。

ssh -p 2022 root@58.246.143.76

当然这个运营商分配的公网IP是经常变化的,所以我进行了DDNS解析,也就不怕公网IP随时变化了,公共域名同样可以登录。

ssh -p 2022 root@nas.hepcloud.top

这个时候,我们是不是可以在家里虚拟出N多机器,供外面的人使用了?不要太开心的!

大功告成,enjoy it。
6、退出关闭容器

centos8是我们给运行中的这个容器起的名儿,所以都可以根据这个名称进行操作,当然也可以使用容器ID进行操作。

#退出容器,在命令行输入exit
exit

#关闭容器, docker stop + 容器ID
docker stop centos8

# 查询所有的容器,包括没有运行的
docker ps -a

#查看所有运行中的容器
docker ps

#开启容器docker start + 容器ID或者容器名
docker start centos8

#进入容器 docker attach + 容器的ID或者容器的名称
docker attach centos8

#删除容器docker rm -f + 容器名
docker rm -f centos8

说明

我们这里就相当于实现了ubuntu中套centos8,docker虚拟出的centos8可以当做一台机器使用,当然只要你的硬件资源够用,可以虚拟出无数多个centos8进行使用。而且可以通过公网IP或者域名进行访问,超级方便。

 作者:勤奋的凯尔森同学 https://www.bilibili.com/read/cv16484446 出处:bilibili

posted @ 2022-09-27 17:33  小丑_jk  阅读(866)  评论(0编辑  收藏  举报