CentOS学习KVM笔记-管理篇
克隆虚拟机KVM虚拟机的克隆分为两种 直接宿主机克隆 复制配置文件和磁盘文件 直接克隆 查看虚拟机状态 12345[root@chobon networks]# virsh list --all Id 名称 状态---------------------------------------------------- 1 vm1_centos7 running 3 vm2_centos7 running 关闭虚拟机vm2_centos7 12[root@chobon networks]# virsh shutdown vm2_centos7域 vm2_centos7 被关闭 执行克隆指令,以vm2_cnetos7为源,克隆新虚拟机名称vm3_centos7,新虚拟机磁盘文件存储地址/mnt/kvm/vfs/vm3.qcow2 1234[root@chobon networks]# virt-clone -o...
Iptables学习笔记
背景KVM安装了虚拟机通过NAT方式访问外放,但是端口映射一直不成功,可能是iptables哪里配置有问题。 起因在CentOS学习KVM笔记-网络篇的时候需要映射虚拟机端口,按照网上的iptables介绍的端口映射规则,加了这三条规则,但是没有效果。 123iptables -A INPUT -p tcp --dport 10122 -j ACCEPTiptables -t nat -A PREROUTING -d 192.168.124.21 -p tcp -m tcp --dport 10122 -j DNAT --to-destination 192.168.122.101:22iptables -t nat -A POSTROUTING -s 192.168.122.0/255.255.255.0 -d 192.168.122.101 -p tcp -m tcp --dport 22 -j SNAT --to-source...
Docker垃圾镜像和容器批量删除
使用一段时间Docker后会产生很多临时镜像(悬虚镜像),数量还少勉强手动逐条删除,一段时间不清理数量多起来删除很费时,所以想批量删除。可以利用linux三剑客命令awk awkawk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 使用方法 : awk ‘{pattern + action}’ {filenames}编程时用法 : command1 | awk {print $1} 输出结果第一列数据 1docker images | awk '{print $1}' 再配合grep查找关键字,可以用正则表达式,xargs结果作为参数给docker rmi,删除指定标签的镜像 1docker images | awk '{print $1}' | grep mysql | xargs -t docker...
CentOS安装Docker
安装Docker1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。 通过 uname -r 命令查看你当前的内核版本 1uname -r 2、使用 root 权限登录 Centos。确保 yum 包更新到最新 1yum update 3、卸载旧版本(如果安装过旧版本的话) 12345678yum remove -y docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine 4、安装需要的软件包, yum-util...
CentOS学习KVM笔记-磁盘篇
基础概念KVM 虚拟化中使用的镜像格式通常为 RAW 和 QCOW2 两种格式. QCOW2 qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:占用空间小,即使文件系统不支持空洞(holes);支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;支持快照(snapshot);镜像文件能够包含多个快照的历史;支持 zlib 的压缩;支持 AES 加密qcow2 第二代的QEMU写时复制格式,QEMU推荐的镜像格式,支持稀疏文件,支持AES加密,支持基于zlib的压缩,支持snapshot,支持后备镜像 RAW RAW 格式镜像文件又被称为 原始镜像 或 裸设备镜像, RAW 格式镜像文件能够直接当作一个块设备类似/dev/sdb 设备可以直接挂载;可以使用dd指令创建一个 File 就能够模拟 RAW 镜像文件;性能较 QCOW2 要更高;能够随意转换格式;RAW不支持快照raw...
Docker容器关闭后无法重启
hexo容器一直映射80端口。docker重启后起不来hexo,报错如下 12ERROR: for hexo-server Cannot start service hexo-server: driver failed programming external connectivity on endpoint hexo-server (32643e5b5ba8b0adb6f203032e5e36cd6b3e531ab908f0ab77bb4a877a21cef6): Error starting userland proxy: /forwards/expose/port returned unexpected status: 500ERROR: Encountered errors while bringing up the project. 查看端口netstat -ano | grep 80 123λ netstat -ano | grep 80 TCP 0.0.0.0:80 0.0.0.0:0 ...
Shell脚本格式dos和unix
在运行docker镜像的时候,报错No such file or dir执行的shell脚本文件明明存在。结果意想不到竟然是shell脚本有格式的区别。 在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识。 查看shell脚本文件格式方法 cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。 od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。 vi filename打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。 解决方法 使用linux命令dos2unix filename,直接把文件转换为unix格式 使用sed命令sed -i “s/\r//“ filename ...
Docker打包镜像设置代理
出现问题最近在做frp的docker镜像的时候需要从github上下载frp程序,curl速度死活上不去。命令行我一直都有设置国外代理,显然Dockerfile文件生成的时候跟cmd不相干。设置了docker的代理也不行(现在想想好傻,docker代理是拉取hub里镜像才有用,不过一般都用国内hub) 解决问题最后突然想到之前在打包镜像的时候更新程序也设置了国内源,茅舍顿开,果断在curl上加上代理,问题解决,速度直接上到2M/s curl -x 10.0.75.1:1080 https://xxxx 差点就想直接下载程序COPY进去了 实在没有条件搭梯子的可以采用国内gitee,一般都有相应的克隆仓库 拓展问题其他类似问题也可以用解决,wget或者系统程序更新可以更换国内镜像源
Alpine更换包下载源
在打包基于alpine系统的docker镜像的时候,每次更新到一半因为网络问题中断掉 在Dockerfile开头加入这行,更换apk包源为阿里云 1RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories 速度杠杠的!!!