分类 PVE 下的文章
Docker迁移及LXC容器
PermitRootLogin prohibit-password 是一个在 SSH 服务器配置(通常是 /etc/ssh/sshd_config 文件)中的指令,用于控制对 SSH 服务器的 root 用户访问。
具体来说,这个指令的含义是:
PermitRootLogin:这是控制是否允许 root 用户通过 SSH 登录的参数。
prohibit-password:这个值表示 root 用户可以通过 SSH 密钥对(public/private key pair)登录,但不可以使用密码登录。
换句话说,当设置为 PermitRootLogin prohibit-password 时,root 用户可以通过 SSH 使用其私钥进行身份验证并登录,但不能使用密码进行登录。
这样的设置是为了提高安全性,因为使用 SSH 密钥对登录通常比使用密码更安全。
如果你想要完全禁止 root 用户通过 SSH 登录,你可以将 PermitRootLogin 设置为 no,而如果你想要允许 root 用户使用密码或密钥对登录,你可以将其设置为 yes(但请注意,这通常被认为是一个不太安全的选择)。
下载的容器镜像
docker save -o /opt/portainer.tar portainer/portainer-ce(镜像名称)
scp portainer.tar root@192.168.1.13:/opt/导出镜像:在源环境中运行以下命令,将镜像导出为文件。
docker save -o image.tar image_name
导入镜像:将导出的镜像文件传输到目标环境,并在目标环境中运行以下命令,将镜像导入。
docker load -i image.tar
Docker容器数据卷迁移:
容器的数据卷可以存储容器中的数据。如果需要迁移包含数据卷的容器,可以使用以下步骤:
创建数据卷容器:在源环境中创建一个仅用于数据卷的容器。
docker create -v /data --name data_container busybox
将数据卷挂载到源容器:在源容器中使用 --volumes-from选项将数据卷容器挂载到源容器。
docker run -d --volumes-from data_container --name source_container image_name
迁移数据卷:将数据卷容器的数据目录复制到目标环境。
创建目标容器:在目标环境中创建一个仅用于数据卷的容器。
docker create -v /data --name data_container busybox
将数据卷挂载到目标容器:在目标容器中使用 `--volumes-from`选项将数据卷容器挂载到目标容器。
docker run -d --volumes-from data_container --name target_container image_name
L X C 容器添加特权
lxc.apparmor.profile = unconfined
报错内容
docker run -ti ubuntu:latest /bin/bash
docker: Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded: running `/usr/sbin/apparmor_parser apparmor_parser -Kr /var/lib/docker/tmp/docker-default752380479` failed with output: apparmor_parser: Unable to replace "docker-default". Permission denied; attempted to load a profile while confined?
error: exit status 243.
ERRO[0000] error waiting for container: context canceled
解决办法,简单粗暴
sudo apt-get remove apparmor
建议卸载因为这玩意一般情况下也用不到。
Rancher安装及问题
更新系统[button color="light" icon="" url="https://www.lius.fun/13.html" type="round"]参考链接[/button]
修改hosts文件,添加以下内容
192.168.1.10 k8s-lius
取消swap分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
安装docker
curl https://releases.rancher.com/install-docker/20.10.sh | sh
不要使用最新的26,Rancher可能不兼容
安装Rancher
docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /opt/rancher/data:/var/lib/rancher --privileged rancher/rancher:v2.6.9
# 找到密码
docker logs ${container-id} 2>&1 | grep "Bootstrap Password:"
Rancher注册过程中查看配置日志
[INFO ] [ingress] removing admission batch jobs if they exist
[INFO ] [addons] Saving ConfigMap for addon rke-ingress-controller to Kubernetes
[INFO ] [addons] Successfully saved ConfigMap for addon rke-ingress-controller to Kubernetes
[INFO ] [addons] Executing deploy job rke-ingress-controller
[INFO ] [ingress] removing default backend service and deployment if they exist
[INFO ] [ingress] ingress controller nginx deployed successfully
[INFO ] [addons] Setting up user addons
[INFO ] [addons] no user addons defined
[INFO ] Finished building Kubernetes cluster successfully
注册完毕
查看注册情况


安装kutectl
#下载最新版本:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
#验证二进制文件(可选)
#下载 kubectl 校验和文件:
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
#根据校验和文件验证 kubectl 二进制文件:
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
如果有效,则输出为:
kubectl: OK
#安装 kubectl
install -o root -g root -m 0755 kubectl /usr/bin/kubectl
#测试以确保您安装的版本是最新的:
kubectl version --client
#将rancher集群中kubeconfig的内容复制到服务器config中
mkdir -p $HOME/.kube
vi $HOME/.kube/config #粘贴复制的内容
#测试kubectl
kubectl get node下载文件传入到主节点 $HOME/.kube/config
Rancher报错
[etcd] Failed to bring up Etcd Plane: etcd cluster is unhealthy: hosts [192.168.100.666] failed to report healthy. Check etcd container logs on each host for more information
mstart节点执行
docker stop $(docker ps -aq) #停止所有停止的容器
docker system prune -f #清理未使用的镜像
docker volume rm $(docker volume ls -q) #删除所有数据卷
docker image rm $(docker image ls -q) #删除所有镜像
[tag type="info"]镜像和数据卷非必要可以不用删除[/tag]
rm -rf /etc/ceph \
/etc/cni \
/etc/kubernetes \
/opt/cni \
/opt/rke \
/run/secrets/kubernetes.io \
/run/calico \
/run/flannel \
/var/lib/calico \
/var/lib/etcd \
/var/lib/cni \
/var/lib/kubelet \
/var/lib/rancher/rke/log \
/var/log/containers \
/var/log/pods \
/var/run/calico
Rancher忘记密码
docker exec -ti <容器id> reset-password
Rancer报错
新建集群后,一直显示无法 Waiting for API to be available,日志显示 [Disconnected] Cluster agent is not connected
- cattle-cluster-agent貌似使用宿主机的hosts制定,需要DNS解析才可以。我注册下游RKE2集群时碰到这个问题,后来添加外部DNS解决。
- RKE 的集群部署完成之后会通过 k8s_cluster-register_cattle-cluster-agent 这个容器 告诉Rancher服务已经部署完毕,但是这个容器的内部 HOSTS 没有配置我们Rancher服务的域名(集群和Rancher不在同一个网络),导致没有办法通信,一直无法注册成功。 我在这个容器内部 手动修改了 /etc/hosts 添加了我们的域名。
Docker容器端口信息重新配置
一、忘记修改网络信息
说明:容器网络模式默认使用bridge,忘记修改为photoprism_default,则使用一下办法
docker network disconnect bridge project #解除网络绑定
docker network connect photoprism_default #网络绑定
docker restart project
docker network inspect photoprism_default #查看是否配置成功
重启生效后会导致宝塔面板、Nginx停止,请手动启动
二、忘记配置端口与数据卷
如果忘记设置数据卷,需要将/var/lib/docker/containers/var/lib/docker/containers目录下的js文件进行修改
文件名称:hostconfig.json 、 config.v2.json
注意:需要下载后修改,进行覆盖上传,vim修改可能保存不生效
忘记设置,使用js工具
三、忘记配置启动策略
docker update project --restart=always
四、容器打包后启动
容器打包成镜像,重新构建的容器,宝塔面板、Nginx需要手动启动
且会导致,里面的MariaDB数据库远程连接失效
docker stop project
docker commit project project:v1.1
docker save -o project.tar prject:v1.1
这里不使用export生成镜像,export生成的镜像会丢失一些元数据,且在创建容器时要格外添加/bin/bash
PVE更换源并关闭弹窗
一.配置软件源
1.关闭企业版更新源
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
2.更新debian国内加速及pve非订阅版更新源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
vim /etc/apt/sources.list
7.X
deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb http://mirrors.aliyun.com/debian-security/ bullseye-security main non-free contrib
deb-src http://mirrors.aliyun.com/debian-security/ bullseye-security main non-free contrib
#ProxmoveVE7
deb http://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription
注意:需要密钥
wget http://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bull8.X
deb http://mirrors.ustc.edu.cn/debian/ bookworm main non-free non-free-firmware contrib
deb http://mirrors.ustc.edu.cn/debian/ bookworm-updates main non-free non-free-firmware contrib
deb http://mirrors.ustc.edu.cn/debian/ bookworm-backports main non-free non-free-firmware contrib
deb-src http://mirrors.ustc.edu.cn/debian/ bookworm main non-free non-free-firmware contrib
deb-src http://mirrors.ustc.edu.cn/debian/ bookworm-updates main non-free non-free-firmware contrib
deb-src http://mirrors.ustc.edu.cn/debian/ bookworm-backports main non-free non-free-firmware contrib
deb http://mirrors.ustc.edu.cn/debian-security/ bookworm-security main non-free non-free-firmware contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ bookworm-security main non-free non-free-firmware contrib
#ProxmoveVE8
deb http://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription
3.更新命令
apt-get update
apt-get dist-upgrade
4.CEPH源更换为中科大源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list
sed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm
二.关闭订阅提示
sed -i.backup -z "s/res === null || res === undefined || \!res || res\n\t\t\t.data.status.toLowerCase() \!== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
若重新登录后依旧存在弹窗,请关闭浏览器重新登录
三.休眠及合盖屏幕常亮
1.编辑 /etc/systemd/logind.conf 在文件中添加以下2行
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore
2.重启服务
systemctl restart systemd-logind.service