CodeGym /행동 /Docker SELF /Bind 사용하기

Bind 사용하기

Docker SELF
레벨 19 , 레슨 4
사용 가능

5.1 바인드 마운트의 아이디어 (bind mounts)

바인드 마운트(bind mounts)를 사용해서 호스트 디렉터리를 컨테이너에 마운트하는 건 Docker의 강력한 기능 중 하나야. 이 기능은 컨테이너가 호스트 시스템에 있는 파일과 디렉터리를 직접 사용할 수 있도록 해줘. 특히 개발, 테스트, 세팅 같은 작업에서 로컬 파일을 컨테이너에 복사하지 않고도 사용할 수 있어서 아주 유용해. 이번 강의에서는 바인드 마운트를 사용하는 방법, 예제, 그리고 베스트 프랙티스를 알아볼 거야.

바인드 마운트는 호스트 시스템의 특정 디렉터리나 파일을 컨테이너에 마운트할 수 있게 해줘. Docker가 관리하고 특별한 디렉터리에 저장되는 볼륨(volume)과는 차이가 있어.

바인드 마운트를 사용하는 장점

  1. 호스트 파일에 직접 접근 가능: 컨테이너가 호스트에 있는 파일을 직접 사용하고 수정할 수 있어.
  2. 개발의 편리성: 개발자가 호스트에서 파일을 수정하면, 컨테이너에서 실시간으로 그 변화를 확인할 수 있어.
  3. 유연성: 호스트의 어느 디렉터리든 컨테이너에 마운트할 수 있어.

바인드 마운트를 마운트하는 명령어

바인드 마운트는 컨테이너 실행 시 -v 또는 --mount 옵션을 사용해서 마운트돼.

5.2 매개변수 -v 사용 예제

1. 호스트 디렉토리를 컨테이너에 마운트하기

호스트 디렉토리를 컨테이너에 마운트하는 간단한 예제:

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

이 예제에서 호스트의 /path/on/host 디렉토리는 컨테이너 내부의 /path/in/container 디렉토리에 마운트됩니다.

2. 호스트 파일을 컨테이너에 마운트하기

개별 파일도 마운트할 수 있어:

Terminal

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

이 예제에서는 호스트의 config.conf 설정 파일이 컨테이너 내부의 nginx.conf 설정 파일로 마운트됩니다.

5.3 --mount 매개변수 사용 예

--mount 파라미터는 다양한 매개변수를 지정할 수 있는 더 상세한 디렉토리 바인드 마운트 방법을 제공해.

1. --mount를 이용한 디렉토리 마운트

Terminal

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

이 예제는 -v 옵션을 사용하는 이전 예제와 비슷하지만, 더 자세한 문법을 사용해.

2. 읽기 전용 모드로 마운트

Terminal

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

이 예제에서는 디렉토리가 읽기 전용 모드로 마운트돼서 컨테이너 내부 파일을 변경하지 못하게 해.

5.4 실용적인 예제

웹 애플리케이션을 개발할 때 호스트의 소스 코드 디렉토리를 컨테이너에 마운트할 수 있어.

호스트에서 소스 코드 디렉토리 생성:

Terminal

mkdir -p ~/my_web_app
echo "안녕하세요, 세상!" > ~/my_web_app/index.html

디렉토리를 마운트하여 컨테이너 실행:

Terminal

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

이제 호스트의 ~/my_web_app 디렉토리에서 변경된 내용이 컨테이너에 바로 반영돼.

예제 2: 설정 파일 사용

호스트의 디렉토리에서 설정 파일을 컨테이너에 마운트할 수도 있어.

호스트에서 설정 파일 생성:

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

설정 파일을 마운트하여 컨테이너 실행:

Terminal

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

이 예제에서는 호스트의 Nginx 설정 파일이 컨테이너 내부에서 사용돼.

5.5 마운트된 디렉토리와 파일 확인

docker exec 명령을 사용해서 컨테이너 내부에서 명령을 실행하며 마운트된 디렉토리와 파일 내용을 확인할 수 있어.

예제

디렉토리 내용 확인:

Terminal

docker exec -it my_container ls /path/in/container

파일 내용 확인:

Terminal

docker exec -it my_container cat /path/in/container/config.conf

바인딩된 디렉토리 삭제

바인딩된 디렉토리는 Docker에서 직접적으로 관리되지 않아서, 삭제는 호스트 파일 시스템 레벨에서 이루어져.

예제

호스트에서 바인딩된 디렉토리 삭제하기:

Terminal

rm -r /path/on/host
1
Опрос
Docker에서 데이터 관리,  19 уровень,  4 лекция
недоступен
Docker에서 데이터 관리
Docker에서 데이터 관리
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION