docker基础使用创建固定硬盘大小为40G的虚拟机

在docker中创建的服务器,匹配出容器id,服务器ip,服务器核数,服务器内存,服务器硬盘空间

for i in (docker ps \| grep -aiE web \| awk '{print 1}');do echo i; docker inspect i|grep -aiE ipaddr|tail -1|grep -aiwoE "([0-9]{1,3}\.){3}[0-9]{1,3}" ;done|sed 'N;s/\n/ /g'|awk '{print NR,$0" 2C 4G 100G"}'|sed 's/ /,/g'

复制代码
for i in $(docker ps | grep -aiE web | awk '{print $1}');do echo $i; docker inspect $i|grep -aiE ipaddr|tail -1|grep -aiwoE "([0-9]{1,3}\.){3}[0-9]{1,3}" ;done|sed 'N;s/\n/ /g'|awk '{print NR,$0" 2C 4G 100G"}'|sed 's/ /,/g'

执行结果为: 1,c784291e46c7,172.17.0.2,2C,4G,100G

创建2核,4G内存的服务器

复制代码
docker run -itd --cpuset-cpus=0-1 -m 4096M --privileged rockylinux-ssh:latest

执行结果如下

查看系统核数命令:top 回车后摁数字1显示如下结果,该机器为4核

以下命令也可查看CPU核数cat /proc/cpuinfo | more显示的processor即为第几个cpu,0表示第一个cpu,因此通过统计processor数也可显示cpu核数

以下命令统计processor个数,即为cpu核数cat /proc/cpuinfo | grep -aiE "processor"

lscpu也可查看cpu核数

查看docker刚才创建的服务器ip,docker inspect 容器id | grep -aiE addr

登录docker刚才创建的服务器cpu核数

也可查看内存大小

登录创建的虚拟机ssh -l root ip密码为:1

可通过docker stats 容器id查看服务器剩余cpu/内容情况

以下命令可以不滚动查看docker stats 容器id --no--stream

升级docker设置的服务器cpu核数和内存大小docker update --cpuset-cpus=0-1 -m 4096M 容器id,但是如果设置的参数超出宿主机,就会出现报错

进入创建的服务器里面命令docker exec -it 085c3f4d9287 /bin/bash

这里可以看到docker创建的虚拟机内存其实是宿主机的内存空间,如果想要使创建的虚拟机内存大小固定为某个值,则需要在启动虚拟机时加上参数 --storage-opt overlay2.size=40G,删除之前创建的docker虚拟机,停掉docker进程

复制代码
docker ps -aq |xargs docker rm -f
pkill dockerd

重新启动docker进程,并且在启动docker进程时固定创建虚拟机的大小/usr/local/docker/dockerd --storage-opt overlay2.size=40G

复制代码
/usr/locker/docker/dockerd --storage-opt overlay2.size=40G

以上执行后显示内容表示执行报错,原因为overlay2参数支持的文件格式为XFS,而我们的宿主机系统文件系统格式为ext4

查看文件系统格式,类型为ext4还是xfs

重新添加新硬盘,fdisk -l显示添加的磁盘,新添加100G的硬盘

可用以下两个命令对其进行格式化分区

挂载分区加参数uquota,prjquota目录配额

根据用户(uquota/usrquota/quota)

根据组(gquota/grpquota);

根据目录(pquota/prjquota)(不能与grpquota同时设定)。

这时看我们的磁盘类型sdb即为xfs格式

在data下创建docker目录

重新执行启动docker命令,并且指定启动后创建的服务器硬盘空间固定大小为40G,并且指定docker的数据目录为/data/docker,指定命令--data-root=/data/docker/

复制代码
/usr/local/docker/dockerd --storage-opt overlay2.size=40G --data-root=/data/docker/

加nohup和&符号将放在后台启动

启动后,上传rockylinux镜像文件docker load < rockylinux-ssh.tar

此时查看docker容器中,即含有rockylinux镜像

容器创建完成后即可创建服务器docker run -itd --name=vm01 --privileged rockylinux-ssh:latest

进入刚刚创建的虚拟机中docke exec -it 虚拟机名称/虚机id /bin/bash

docker exec -it vm01 /bin/bash

此时查看云主机的磁盘空间大小即为设置的40G

创建用户xinLinux,并且指定用户xinLinux写入文件大小为10M

查看设置的权限xfs_quota -x -c 'report' /data/

给data目录增加权限

切换到xinLinux用户

验证设置的权限,进入/data目录,写入20M文件报错,只能写入10m文件

相关推荐
向日葵.7 分钟前
CMake学习
开发语言·c++·学习
hp.puppy8 分钟前
kali下maven 的安装与配置
java·maven
碎梦归途8 分钟前
23种设计模式-创建型模式之工厂方法模式(Java版本)
java·设计模式·工厂方法模式
放情15 分钟前
关于k8s的部署
java·docker·kubernetes
August_._21 分钟前
【JavaWeb】详细讲解 HTTP 协议
java·网络·网络协议·http
zru_960226 分钟前
Java Stream流之GroupBy的用法
java·开发语言
shangxianjiao28 分钟前
Javaweb后端 maven高级 maven聚合
java·maven·springboot·springcloud·聚合
艾露z28 分钟前
Vert.x学习(五)—— SockJS,搭建客户端,与后端服务器进行通信
java·前端·后端·学习·web
Vesan,32 分钟前
C++ static的使用方法及不同作用
java·jvm·c++
一个处女座的暖男程序猿1 小时前
Mysql的锁有哪些
java