기본적으로 virtualbox에서 공유해주는 폴더는
윈도우의 폴더를 vm에서 docker 계정으로 마운트 해주는 기능이라서 소유자 변경이 되지 않는다.
이 공유 폴더를 볼륨 지정시 DB컨테이너와 같이 특정 소유자 권한이 필요한 파일은 생성이되지 않기 때문에 컨테이너를 시작할 수 없다.
그렇기 때문에 리눅스 폴더를 volume폴더로 잡고 해당 폴더는 samba서버를 이용하여 윈도우와 공유해서 사용한다.
1. docker이용 삼바서버 설치 pwntr/samba-alpine-docker
2. Samba설정 : 우분투 자작 NAS-4강, Samba를 이용한 윈도우 파일 공유
(삼바설정파일 예)
삼바서버를 이용해서 서버에서 운영중인 docker gitlab을 윈도우 로컬서버로 이전했다. (삼바서버를 이용하지 않고 virtualbox공유폴더 이용시 postgresql 시작시 파일을 찾을 수 없음 오류발생)
3. 외부 접속을 위한 virtualbox 포트 포워딩 : VirtualBox Port Forwarding (포트 포워딩)
이상으로 리눅스 서버와 동일하게 윈도우에서도 docker를 이용할 수 있다.
samba docker-compose 파일
smb설정파일
# 삼바서버를 사용할경는 윈도우 작업환경을 공유해서 실시간 구성을 할 수 없기 때문에 배포환경을 구성하던가 아니면 웹루트 파일은 소유자 권한이 필요없기 때문에 공유 폴더로 volume 링크를 걸어서 해결할 수 있다.
# samba 최종권한 설정
폴더 생성시 적용권한 설정이 먹지 않아서 보니 samba의 적용권한 방식이 따로 존재하고 있었다. security mask 권한도 같이주어야 적용된다.
Samba 최종 권한 설정