다음 명령을 사용하여 심볼릭 링크를 설정하려고 합니다.
ln -s /var/www/data/cache/widget/overlay/ /var/www/public_html/images/overlay
하지만 그것은 출력
ln: failed to create symbolic link '/var/www/public_html/images/overlay': Protocol error
호스트 운영 체제는 Windows 8이고 Docker 이미지는 Ubuntu입니다. Docker 이미지가 시작되면 /var/www/public_html
Windows 8 내의 폴더에 매핑되기 때문에 문제가 권한과 관련이 있을 수 있다고 생각합니다 . /C/Users/Username/Documents/development/public_html
그러나 폴더 내의 명령줄을 통해 폴더와 파일을 만들 수 있으며 public_html
이는 권한에 위배됩니다.
.sh
또한 실행되는 스크립트 일 뿐이므로 Docker를 관리자로 시작하여 도움이 될지 확인할 수 없었습니다 .
심볼릭 링크를 생성할 때 "프로토콜 오류"가 발생한 사람이 있습니까? 아니면 이 문제의 원인에 대한 추가 정보를 얻는 방법을 알고 계십니까?
편집: 또한 PHP를 통해 폴더에 이미지를 저장하거나 public_html
(다시 PHP를 통해) 파일을 복사하려고 하면 동일한 "프로토콜 오류" 메시지가 표시됩니다.
답변1
그럼 /var/www/public_html
실제로는 윈도우 폴더인데 /var/www/data
아닌가요? 가상 머신의 Windows 디렉터리에서 Ubuntu 디렉터리로의 심볼릭 링크를 생성하려고 합니다. Windows에서는 이러한 개체를 지원하는 것이 불가능합니다.
위의 내용을 확장하면 요점은 Windows 호스트가 C:\Users\Tom_Hart\Documents\development\public_html
클라이언트가 사용할 수 있는 파일 서버로 설정되어 있다는 것입니다. 특히 Ubuntu 이미지에 대한 읽기/쓰기 액세스를 제공하여 Ubuntu가 해당 개체를 읽고, 수정하고, 생성할 수 있도록 합니다. Windows 디렉터리 이하. 그러나 일반적으로 서버는 자신의 클라이언트에 대해 알 수 있는 방법이 없습니다(Google이 색인 생성을 시작하면 어떤 느낌이 들겠습니까?)당신의파일을 검색하여 검색결과에 표시하시겠습니까? ) Docker 이미지를 내보내는 중이 아닌 경우그것은/var/www/data
예를 들어, Windows는 이러한 경로에 액세스하거나 심지어 이해할 수도 없습니다 .
C:\Users\Tom_Hart\Documents> 메모장/var/www/data/cache/widget/overlay/무엇
작동하지 않습니다(아마도 당신이 진심이라고 생각할 것입니다 C:\var\www\data\cache\...
). Windows는 Windows 프로세스에 액세스할 수 없는 리소스를 가리키는 Windows 디렉터리에 심볼릭 링크를 만드는 것을 자연스럽게 거부하는 것 같습니다.