Windows10家庭版Docker Toolbox执行touch Dockerfile遇权限及命令问题求助
解决Windows 10家庭版Docker Toolbox中
touch命令的问题 我来帮你拆解这两个报错的原因和对应的解决办法:
一、命令提示符(CMD)里提示'touch' is not recognized
touch是Linux/Unix系统的原生命令,Windows CMD本身没有这个命令,所以不管是不是管理员模式都会报错。你可以用Windows原生的命令替代:
- 创建空白Dockerfile:
type nul > Dockerfile - 如果要创建带空行的文件(和
touch效果更接近):echo. > Dockerfile
二、Docker Quickstart Terminal里提示Permission denied
Docker Toolbox是通过VirtualBox创建一个Linux虚拟机(默认叫default)来运行Docker的,你在Docker Quickstart Terminal里的操作其实是在这个虚拟机环境中。出现权限问题通常有这几个解决方向:
1. 切换到共享目录操作
Docker Toolbox默认会把Windows的C:\Users\你的用户名目录共享到虚拟机的/c/Users/你的用户名路径下,只有在这个共享目录内操作,权限才是正常的。你可以先执行cd /c/Users/你的用户名切换到该目录,再尝试touch Dockerfile。
2. 用sudo临时提升权限
如果确实需要在非共享目录操作,或者共享目录仍有权限问题,可以用sudo获取root权限执行命令:
sudo touch Dockerfile
输入虚拟机的root密码即可(Docker Toolbox默认default虚拟机的root密码是tcpip,如果不行试试tcuser,这是默认docker用户的密码)。
3. 直接在Windows系统创建文件
更简单的方式:直接在Windows文件管理器里找到目标文件夹,右键新建文本文档,然后重命名为Dockerfile(注意要显示文件扩展名,去掉.txt后缀)。这个文件会自动同步到Docker Toolbox的虚拟机中,你可以直接在Terminal里编辑它。
内容的提问来源于stack exchange,提问作者SOURABH DHANUKA




