linux常用命令
创建vsftpd文件夹
1 | mkdir vsftpd |
- 检查目录的所有者和权限
1 | ls -ld /目标目录 |
例如:
1 | ls -ld /etc |
1 | drwxr-xr-x 1 root root 4096 Oct 1 12:34 /etc |
drwxr-xr-x 表示权限:d 表示目录,rwx 表示所有者权限,r-x 表示组权限,r-x 表示其他用户权限。 root root 表示所有者和组
修改目录权限(谨慎操作)
1 | sudo chmod 775 /目标目录 |
例如:
1 | sudo chmod 775 /etc |
775 表示所有者有读、写、执行权限,组用户有读、写、执行权限,其他用户有读、执行权限,777 表示: 所有者、组用户和其他用户都有读、写、执行权限。
删除 chroot_list
1 | rm -f -r chroot_list |
更改文件所有者
使用以下命令更改所有者:
1 | sudo chown 你的用户名:你的用户组 chroot_list |
例如:
1 | sudo chown admin:users chroot_list |
检查文件是否被锁定
如果文件被其他进程锁定,可能会导致无法删除。 使用以下命令检查文件是否被占用:
1 | lsof | grep chroot_list |
如果文件被占用,可以尝试终止相关进程:
1 | sudo kill -9 进程ID |
使用以下命令新建 chroot_list 文件
1 | touch chroot_list |
echo 命令可以将内容写入文件。如果文件不存在,会自动创建。
1 | echo "文件内容" > chroot_list |
例如:
1 | echo "user1" > chroot_list |
这会在当前目录下创建一个名为 chroot_list 的文件,并写入内容 user1。
你可以使用文本编辑器(如 vi 或 nano)创建并编辑文件。
1 | vi chroot_list |
按 i 进入编辑模式,输入内容后,按 Esc 退出编辑模式,然后输入 :wq 保存并退出。
1 | nano chroot_list |
输入内容后,按 Ctrl + O 保存,按 Ctrl + X 退出。
从云服务器安装脚本
1 | SUDO=$(command -v sudo || echo "") ; $SUDO bash -c "$(wget -qO- ftp://maweiqing:yuanhetang911@106.54.36.205/homenas.sh)" |
解释
SUDO=$(command -v sudo || echo “”):
检查系统是否安装了 sudo 命令。
如果安装了 sudo,SUDO 变量会被设置为 sudo;如果没有安装,SUDO 变量会被设置为空字符串。
1 | $SUDO bash -c "$(wget -qO- ftp://maweiqing:yuanhetang911@106.54.36.205/homenas.sh)": |
使用 wget 从 FTP 服务器下载脚本内容。
-qO- 选项表示静默下载(-q)并将输出打印到标准输出(-O-)。
将下载的脚本内容通过 bash -c 执行。
如果 SUDO 变量是 sudo,则脚本会以 sudo 权限执行;否则,直接执行。
注意事项
FTP 链接安全性:FTP 协议是明文传输的,用户名和密码可能会被截获。建议确保网络环境安全,或者改用更安全的协议(如 HTTPS 或 SFTP)。
脚本来源:确保 FTP 服务器和脚本内容可信,避免执行恶意代码。
网络连接:确保 FTP 服务器可以正常访问。
执行后,脚本会自动从 FTP 服务器下载并运行。如果脚本需要交互(如输入密码或确认),请根据提示操作。
从 FTP 服务器下载 Docker 镜像并上传到 Docker 镜像仓库
由于 docker pull 不支持直接从 FTP 服务器拉取镜像,你需要先将镜像文件从 FTP 服务器下载到本地,然后使用 docker load 命令加载镜像。
1.1 下载镜像文件
使用 wget 或 curl 从 FTP 服务器下载镜像文件:
1 | wget ftp://maweiqing:yuanhetang911@106.54.36.205/docker/roon1510.tar |
或者使用 curl:
1 | curl -u maweiqing:yuanhetang911 -O ftp://106.54.36.205/docker/roon1510.tar |
.2 加载 Docker 镜像
下载完成后,使用 docker load 命令加载镜像:
1 | docker load -i roon1510.tar |
Portainer卡在环境设置
可能原因:
Docker 套接字未正确挂载
检查容器启动命令是否包含:
1 | -v /var/run/docker.sock:/var/run/docker.sock |
验证命令:
1 | docker inspect portainer | grep docker.sock |
应显示挂载信息。
Docker 服务未运行
在宿主机运行:
1 | systemctl status docker # 确保 Docker 正在运行 |
Portainer 数据卷冲突
如果之前安装过 Portainer,尝试清理旧数据:
1 | docker volume rm portainer_data |
然后重新创建容器。
完整正确启动命令
1 | docker run -d \ |
验证是否成功
访问 http://
成功后会看到 Docker 仪表盘,显示容器、镜像等信息。
出现如下问题
1 | root@BleachWrt:~# docker inspect portainer | grep docker.sock |
从你的 docker inspect 输出可以看出,Portainer 的 Docker 套接字(socket)挂载存在问题:
关键问题
你的挂载路径是:
1 | /opt/docker:/var/run/docker.sock |
但 标准 Docker 套接字路径 应该是:
1 | /var/run/docker.sock:/var/run/docker.sock |
导致的问题
/opt/docker
可能不存在或没有正确权限Portainer 无法通过该路径连接到 Docker 守护进程
因此你在初始化时无法添加本地环境
解决方案
- 先删除现有容器
1 | docker stop portainer |
- 确保宿主机 Docker 套接字存在
1 | ls -l /var/run/docker.sock |
正常应该显示:
1 | srw-rw---- 1 root docker 0 Mar 29 12:34 /var/run/docker.sock |
- 重新用正确路径运行 Portainer
1 | docker run -d \ |
- 验证挂载
1 | docker inspect portainer | grep docker.sock |
现在应该显示:
1 | "/var/run/docker.sock:/var/run/docker.sock" |
额外检查
如果问题依旧:
检查 Docker 用户组权限:
1 | sudo usermod -aG docker $(whoami) |
检查套接字权限:
1 | sudo chmod 666 /var/run/docker.sock |
重新访问
现在访问 http://<你的IP>:9000 应该可以正常完成初始化了。
提示:如果你确实需要使用 /opt/docker,请确保:
该路径存在
是有效的 docker.sock 文件
有正确权限(至少 660)
出现如下问题
1 | root@BleachWrt:~# docker run -d \ |
从你的操作和错误信息来看,系统环境有一些特殊情况需要处理。以下是分步解决方案:
当前问题分析
你使用的是 精简版Linux系统(可能是OpenWRT/BleachWRT),缺少常见命令:
sudo、whoami、newgrp 等命令不存在
Docker套接字权限可能需要调整
Portainer已正确运行,但可能因权限问题无法连接Docker
解决方案
- 检查Docker套接字权限(使用root直接操作)
1 | ls -l /var/run/docker.sock |
正常应该显示:
1 | srw-rw---- 1 root docker 0 Mar 29 12:34 /var/run/docker.sock |
- 手动设置套接字权限
1 | chmod 666 /var/run/docker.sock |
- 验证Portainer容器状态
1 | docker ps |
- 检查防火墙规则(如果系统有防火墙)
1 | iptables -L -n | grep 9000 |
- 尝试访问Portainer
在浏览器访问:
1 | http://<你的路由器IP>:9000 |