解決docker images 鏡像消失的問題
1、50,93存在鏡像消失情況
[root@h50 /]# df -h 文件系統 容量 已用 可用 已用% 掛載點 devtmpfs 24G 0 24G 0% /dev tmpfs 24G 0 24G 0% /dev/shm tmpfs 24G 428M 24G 2% /run tmpfs 24G 0 24G 0% /sys/fs/cgroup /dev/mapper/cl-root 50G 43G 8.0G 85% /
root剩下85%
overlay 50G 43G 8.0G
85% /var/lib/docker/overlay2/9e1d9bbd368c8ebafde39dcaaa66afecde95bfab7db51b13fe92aa5c7995cc9e/merged
鏡像使用的是root下的空間
cat /var/lib/kubelet/config.yaml evictionHard: imagefs.available: 15% memory.available: 100Mi nodefs.available: 10% nodefs.inodesFree: 5%
imagesfs不足15%的會發生驅逐
應該是跟這個有關
嘗試為root增加硬盤空間,從home上劃分空間到root上
93上增加7個t的空間
在lv上給root增加空間
resize2fs /dev/mapper/centos-root 發生錯誤 xfs_growfs /dev/mapper/centos-root
數據備份
scp -r /home/ [email protected]:/root/home50/*
解除掛載
umount -l /home lvextend -L +80g /dev/centos/root
增加之後 需要xfs更新一下
xfs_growfs /dev/mapper/centos-root
無法掛載需要修復
xfs_repair /dev/cl/home
由於好幾T 修復時間過長
刪除lv home
lvremove /dev/centos/home
創建1.8t的lv home
lvcreate -n home -L 1.9T /dev/centos
格式化為xfs系統
mkfs.xfs /dev/centos/home
掛載
mount /dev/mapper/centos-home /home
恢復數據回來
增加home大小
lvextend -L +1.8t /dev/centos/home xfs_growfs /dev/mapper/cl-home
這時候恢復home大小
恢復數據回來
scp -r [email protected]:/root/home52/* /home/
2.減小
xfs是不支持減少的,無法使用lvreduce,但無法使用resize2fs,會報錯:Couldn’t find valid filesystem superblock。意思就是減少後的邏輯分區需要通過mkfs.xfs命令重新格式化一下,如果這個邏輯分區上有重要的文件就歇菜瞭~
隻能去備份home下的文件瞭。
註意開機掛載
cat /etc/fstab
60上
lvreduce -L 5t /dev/centos/home lvextend -L +1.8t /dev/centos/root xfs_growfs /dev/mapper/centos-home
補充:docker 重啟鏡像沒有瞭_Docker的常用鏡像及使用方式
Docker作為眼下最流行的技術,已經越來越成為開發人員的必備技能。它可以方便的讓我們快速的搭建起需要應用環境,像常用的redis、mq、tomcat、zookeeper、mysql、nginx鏡像,在這裡我總結一下使用方式,可以讓你一篇文章就把這些知識點串鏈起來。
1. 拉取鏡像
目前我常用的是國內的網易的鏡像,下載速度非常快。
# docker pull rabbitmq:3-management --這個版本的有後臺顯示可以看到監控頁
2. 查看鏡像
拉取下來之後查看鏡像,獲得鏡像id:
# docker images -----查看拉取的鏡像
3. 啟動鏡像
啟動鏡像是非常關鍵的一步,各個不用應用的鏡像的啟動命令都有一定的差別,主要是端口的映射,下面的都是試驗過,可以成功啟動的鏡像:
# docker run -d --name "xdclass_nginx" -p 8088:80 nginx --啟動nginx # docker run -d --name "xdclass_rabbitmq" -p 5672:5672 -p 15672:15672 db695e07d0d --運行mq;-d是後臺運行;-p是指定端口映射 # docker run -d --name xdclass_redis -p 6379:6379 d4f259423416 --啟動redis容器,但實際redis沒有啟動 # docker exec -it ce388f800aed redis-cli ---docker中訪問啟動redis,it後面的是容器號。 # docker run -d --name myzookeeper -p 2181:2181 --restart always 5e8e3d7b06f9 --啟動zookeeper鏡像 # docker run -p 3306:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=rootroot -d 9e64176cd8a2. ----docker啟動mysql,MYSQL_ROOT_PASSWORD後面的是啟動設置的默認的root的密碼。
4. 查看已經啟動容器
# docker ps -a ---查看所有的容器,包括已經啟動和未啟動的容器 # docker ps. -----查看已經啟動的容器。
5. Mysql的後續操作
Mysql的容器啟動後,如果想通過navicat等客戶端連接,還需要開通遠程登錄權限,下面是操作步驟:
第一步,在上面已經啟動mysql容器後,進入容器:
# docker exec -it c8486ec93afb bash
第二步,登錄mysql:
#mysql -u root -p ---中間會提示輸入先前docker run的密碼rootroot;
第三步:添加遠程訪問mysql的權限:
mysql> grant all privileges on *.* to root@'%' identified by 'rootroot' with grant option; mysql> flush privileges;
註意:新設置的遠程訪問的用戶名:root ,密碼:rootroot ;
6. 停止和重啟容器命令
# docker stop 283138f62bc2 ---停止容器,容器號:283138f62bc2 # docker start 283138f62bc2 --啟動已經建立的容器號:283138f62bc2 #docker stop $(docker ps -a -q) -- stop停止所有容器
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- Docker啟動常用容器命令及配置詳解
- 繼docker之後podman容器技術崛起
- Docker鏡像的遷移與備份及Dockerflie 使用方法詳解
- 基於Docker、Nginx和Jenkins實現前端自動化部署
- docker mysql修改root賬號密碼並賦予權限