一直用 mac 装 docker,但一直被 docker 的不知名原因高 cpu 占用搞得很无语,正好学习hacking,有用 VirtualBox 装 Kali,就顺便装了个 centos+docker
VirtualBox
VirtualBox 主页 https://www.virtualbox.org/
下载地址: https://www.virtualbox.org/wiki/Downloads
直接下载 win版本 https://download.virtualbox.org/virtualbox/6.1.6/VirtualBox-6.1.6-137129-Win.exe
直接下载 mac版本 https://download.virtualbox.org/virtualbox/6.1.6/VirtualBox-6.1.6-137129-OSX.dmg
记得下载 Extension Pack
双击安装即可
安装完再双击 Oracle_VM_VirtualBox_Extension_Pack-6.1.6.vbox-extpack 安装扩展包
如果是老版本升级上来,需要先把老扩展包删除,再安装新包
centos
在这里下载 centos 的镜像 https://www.linuxvmimages.com/images/centos-8/
解压缩后,双击就可以导入.
不需要在意这里配置,以后都可以修改
鉴于我的电脑只有2C8G,所以只分配了1C1G 给虚拟机.
配置网络
由于我需要在办公室使用,但并不想暴露在办公网络中,而且喜欢使用 ssh 连接上去工作,所以使用了 NatNetwork+HostOnly的组合.
1. 在 virtualBox的配置里添加 NatNetwork,只需要添加一个就可以.默认配置就好. NatNetwork 会把虚拟机放到自己私有的网段中,他们之间可以联系,但外界,包括宿主机都不能直接访问.
如果你懒得弄,直接使用默认的桥接模式,桥接模式会直接分配虚拟机一个与宿主机平行的 ip 地址,可以相互通讯.
2. 选中 centos 虚拟机,点击配置,进入网络选项
3. 配置虚拟机网络,点击网上1,连接方式改为 Nat 网络,就是上面设置的 NatNetwork,混杂模式改为允许全部,这是 Kali 等学习hacking 时需要,但开开也无访.
4. 点开网上2,连接方式改为"仅主机(Host-only)网络",高级选项一样
开机
选中虚拟机,点击启动就可以开始了
启动成功后,默认账号密码是 centos/centos
进入成功,使用 passwd 命令修改默认密码
下面可以给虚拟机做镜像了
制作镜像
制作好镜像,当你"玩坏"了后,可以很容易再变回来,这才是虚拟机好玩的地方
切换阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
cat /etc/yum.repos.d/CentOS-Base.repo
yum makecache # 差不多和 apt update
yum -y update
安装 docker
使用 https://get.daocloud.io/ 来安装
curl -sSL https://get.daocloud.io/docker | sh
会报错: Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
参考这里解决: https://www.backendcloud.cn/2020/03/16/centos8installdocker/
我们直接升级安装 containerd
yum install -y wget
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install -y containerd.io-1.2.6-3.3.el7.x86_64.rpm
# 再次安装
curl -sSL https://get.daocloud.io/docker | sh
# 安装成功后可以使用下面命令让 centos 可以直接使用 docker 命令
sudo usermod -aG docker centos
安装加速镜像站: https://www.daocloud.io/mirror
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
又发现这个脚本不包括 Centos8
参考 CentOS8安装Docker,这里手动配置
echo '{"registry-mirrors": ["http://f1361db2.m.daocloud.io"]}' >/etc/docker/daemon.json
systemctl restart docker
docker info
安装镜像
拿 redis 试水,非常不幸好像现在的镜像都不起作用了,阿里的中文镜像也好像不顶用,这个用户并没有实际上解决,如果有还可以用的同学,不防留言
docker pull redis
Image docker.io/library/redis:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
# 只要用指定 daocloud.io 来获取
docker pull daocloud.io/redis
# 下载成功
迁移镜像和数据
下面需要把原来的数据都迁移过来 比如 mysql
docker save -o mysql.tar mysql:5.7
# 把 mysql.tar 传到虚拟中,导入
docker load --input mysql.tar
再把原来的数据上传,就完成迁移了
centos ssh 无密码登录
进入 centos 后,使用 ifconfig 可以看到当前的 ip 情况,比如我的:
192.168.99.100就是宿主机访问虚拟的地址,ssh 服务默认是打开的,试着用 ssh 登录
ssh centos@192.168.99.100
输入账号密码成功
现在要设置免密登录,centos 的默认是: StrictModes yes,所以创建 .ssh/authorized_keys 需要改权限
mkdir ~/.ssh
chmod 600 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
把自己的 key 加入authorized_keys
再登录如果发现还是提示密码,参考 https://blog.csdn.net/lisongjia123/article/details/78513244
SSH不希望home目录和~/.ssh目录对组有写权限,所以还需要
chmod g-w /home/centos
到这里基本上可以,这时可以把 /etc/ssh/sshd_config 中的
PasswordAuthentication no
![点击并拖拽以移动 wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==](https://i-blog.csdnimg.cn/blog_migrate/7cf47e92e1ebe9f2536c6c0711b2d57f.png)
习惯性把这个关掉.
VirtualBox cpu 占用也高?
很不幸,过一会儿,发我现 VirtualBox 又点到100%cpu,风扇呼呼响,不过查了一下,可以解决
添加虚拟机guest,分4M 内存,不分配硬盘.再打开,可以了,正常情况下,VirtualBox 占用一般在 20%左右可以接受
这时还遇到 cpu 再次高升的问题,我注意到我唯一改变的是关了 VirtualBox 的主控制板.
关掉虚拟机,双击 VirtualBox 重新打开,重新打开 centos,成功.不再关 VirtualBox....
总结
总体上,还是解决了 docker 占资源过大,风扇呼呼吹的问题.