gangseyun@gangseyun-ui-MacBookAir docker % docker-compose up -d
[+] Running 2/2
✔ Container client Started 0.6s
✔ Container server Running 0.0s
> 두 개의 이미지를 컨테이너로 만들어 백그라운드에서 실행함
docker-compose down
> 두 개의 이미지로 만든 컨테이너 종료
docker-compose up {특정 이미지}
> 특정 이미지만 컨테이너로 실행
► 위의 명령어들은 docker-compose.yaml 파일을 기반으로 실행
> 볼륨(volume) 또는 논리 드라이브(logical drive)는 하나의 파일 시스템을 갖춘 하나의 접근 가능한 스토리지 영역
> 일반적으로(꼭 필수는 아니지만) 하드 디스크의 단일 파티션에 상주
볼륨과 파티션의 차이
> 플로피 디스크는 파티션이 포함되어 있지 않음에도 볼륨으로 접근이 가능, 플로피 디스크는 현대의 대부분의 컴퓨터 소프트웨어를 가지고 파티셔닝이 불가능
✔︎ 플로피 디스크 : 컴퓨터의 보조 기억 장치의 일종, 넣고 빼면서 사용
볼륨 레이블, 볼륨 일련 번호
> 볼륨 레이블 : 파일 시스템의 특정 볼륨에 주어지는 이름
> FAT 파일 시스템에서 볼륨 레이블은 전통적으로 11자로 제한
> 파일 할당 테이블(File Allocation Table, FAT)은 디지털 카메라 등에 장착되는 대부분의 메모리 카드와 수많은 컴퓨터 시스템에 널리 쓰이는 컴퓨터 파일 시스템 구조
>일반적으로 고유하며 사용자에 의해 일반적으로 변경되지 않음
도커 컨테이너 데이터 볼륨 관리
1. 데이터 볼륨
> 도커는 하나의 이미지로 부터 여러 컨테이너를 만들기 위해서 Union File system을 사용
> Union File system : 원본 이미지에 변경된 내용(diff)를 추가하는 방식
> 데이터를 다른 컨테이너와 공유 하거나 혹은 호스트에서 접근 할 수 있어야 하는 경우가 있는데, 이때 데이터 볼륨을 사용
> 호스트의 파일 시스템을 컨테이너에서 마운트 하는 방식으로 사용
> AUFS와 Overlay 파일시스템 같은 유니온 파일 시스템은 (ext4같은)네이티브 파일시스템위에 올라가기 때문에 아무래도 성능이 저하
> 데이터 볼륨 사용
2. 데이터 볼륨 추가
> 도커 컨테이너를 만들 때(docker run), -v옵션을 이용해서 컨테이너에 데이터 볼륨을 추가 할 수 있다.
3. 호스트 디렉토리를 디렉토리로 설정
> 호스트의 특정 디렉토리를 컨테이너로 마운트
docker run -i -t -v /src/web:/dst/web ubuntu /bin/bash
/src/web을 컨테이너 디렉토리 /dst/web로 마운트 한다. 호스트 디렉토리와 컨테이너 디렉토리는 반드시 완전경로(full path)
docker run -i -t -v /src/web:/dst/web:ro ubuntu /bin/bash
> 읽기 전용으로 마운트
4. 볼륨의 공유
컨테이너가 가지고 있는 볼륨을 다른 컨테이너와 공유 할 수도 있음
> 도커에서 제공하는 네임드 데이터 볼륨 컨테이너(Named data volume container)를 이용해서 공유
docker create -v /leesang --name leesang ubuntu /bin/true
> 볼륨 컨테이너는 --volumes-from을 이용해서 공유
docker run -it --volumes-from leesang ubuntu /bin/bash
6. 백업, 복구, 마이그레이션
> docker run --volumes-from leesang -v /backup:/backup \
ubuntu tar cvzf /backup/backup.tar.gz /leesang
- --volumes-from 으로 leesang를 컨테이너에
- 로컬의 /backup을 컨테이너의 /backup으로 마운트 한다.
- tar 명령을 이용해서 /leesang 볼륨을 /backup/backup.tar.gz으로 백업한다.
> docker run --volumes-from leesang2 -v /backup:/backup ubuntu \
tar xvzf /backup/backup.tar.gz
- leesang2 볼륨으로 컨테이너를 실행한다. 복구한 파일의 정보는 leesang2 볼륨에 저장돼서 다른 컨테이너에서 사용 할 수 있다.
- 로컬의 /backup을 컨테이너의 /backup으로 마운트 한다.
- tar 명령을 이용해서 backup.tar.gz의 압축을 푼다.
> docker run --volumes-from leesang2 -it ubuntu /bin/bash
컨테이너 실행
7.1. 볼륨 만들기
> docker volume create --name $name
7.2. 볼륨 목록 확인
docker volume ls volume_id
: 명령으로 전체 볼륨 목록을 확인
7.3. 볼륨 삭제
docker volume rm volume_id
: 명령으로 볼륨을 지울 수 있음
[출처]
1. https://www.joinc.co.kr/w/man/12/docker/Guide/DataWithContainer#toc
'DevOps BootCamp > 도커' 카테고리의 다른 글
컨테이너 - 볼륨과 환경 변수 (1) | 2023.04.13 |
---|---|
도커 푸시하기 (0) | 2023.04.13 |
왜 도커인가? (0) | 2023.04.11 |
도커 컨테이너 차트 시트 (0) | 2023.04.10 |
도커 - 기본 원리 (0) | 2023.04.08 |