Docker

[Docker] 로컬 프로젝트 폴더와 컨테이너 홈디렉토리 동기화

먹세 2021. 9. 24. 20:14

1. 볼륨생성 방법 (Docker 에서 권장하는 방법)

2. 바운드마운트 (로컬개발환경 폴더 동기화시 편리)

 

두 가지 방법 중에 바운드마운트로 로컬 개발환경을 세팅 해보자.

 

D:\docker 

폴더 안에 프로젝트들을 넣을 계획이라면

-v 옵션과 : 을 사이에 두고 [로컬개발폴더경로]:[컨테이너홈디렉토리경로] 형식으로 사용한다

$ docker run -it -d -p 80:80 --privileged -v D:\docker:/home/ 
--name laravel8 dockingmosei:laravel8:latest /sbin/init

$ docker exec -it laravel8 bash

 

laravel8 컨테이너를 생성하고 컨테이너의 /home 디렉토리를 로컬의 D:\docker 폴더와 마운트 시킨다.

주의할 점은 D:\docker 폴더가 빈 폴더라면, 컨테이너 /home에 이미 laravel 프로젝트가 설치된 상태라도

마운트되면 동기화 되기 때문에 컨테이너의 /home 안의 파일들은 모두 사라질 것이다.

그러므로 -v로 동기화 하고나서 프로젝트를 설치해야 한다.

 

# 컨테이너 내 home 디렉토리 이동
$ cd /home

# laravel 프로젝트 생성
$ laravel new laravel8

# php8.0-fpm 권한으로 맞춰준다
$ chown -R www-data /home/laravel8

설치가 완료되면 로컬 디렉토리에도 파일 동기화가 되어있을 것이다.

 

위 처럼 로컬 D 드라이브 내에 laravel8 폴더가 새로 생기면서 

컨테이너에서 생성한 laravel 프로젝트가 동기화 된 것을 볼수 있다.

반응형