Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 처음 만나는 AI수학 with Python
- ㅒ
- iterator
- 서버설정
- 이터레이터
- Kernighan의 C언어 프로그래밍
- 코드로배우는스프링웹프로젝트
- 목록처리
- 데비안
- 코드로배우는스프링부트웹프로젝트
- resttemplate
- baeldung
- 스프링 시큐리티
- d
- 자바편
- /etc/network/interfaces
- 처음 만나는 AI 수학 with Python
- 페이징
- 티스토리 쿠키 삭제
- 선형대수
- 자료구조와함께배우는알고리즘입문
- 네트워크 설정
- 구멍가게코딩단
- 스프링부트핵심가이드
- GIT
- network configuration
- 알파회계
- 자료구조와 함께 배우는 알고리즘 입문
- 리눅스
- 친절한SQL튜닝
Archives
- Today
- Total
bright jazz music
[Docker] volume 본문
https://docs.docker.com/storage/volumes/
1. 도커 볼륨 생성하고 목록보기
: 아래와 같이 생성하면 기본적으로는 /var/lib/docker/volume에 생성된다.
[coffee@localhost ecert24]$ cd /usr/local
[coffee@localhost local]$ sudo docker volume create dev-volume
dev-volume
[coffee@localhost local]$
1.1. 특정 경로에 볼륨 생성하기
$ sudo docker volume create --name data --opt type=none --opt device=/data --opt o=bind
Docker 컨테이너 내에서 사용할 수 있는 볼륨을 생성하는 명령이다. 이 명령을 통해 "data"라는 이름의 볼륨이 생성된다.
/*
`--opt` 옵션을 사용하여 추가적인 설정을 지정할 수 있습니다.
- `type=none`: 이 옵션은 볼륨의 유형을 "none"으로 지정합니다. "none" 유형의 볼륨은 호스트 시스템의 특정 경로에 바인딩(bind)되는 방식으로 동작합니다.
- `device=/data`: 이 옵션은 바인딩할 호스트 경로를 "/data"로 지정합니다. 컨테이너 내에서 볼륨을 사용할 때 해당 경로는 호스트 시스템의 실제 경로와 연결됩니다.
- `o=bind`: 이 옵션은 바인딩된 볼륨을 읽기 및 쓰기 가능하도록 설정합니다. 즉, 컨테이너 내부 및 외부에서 해당 경로에 대한 읽기 및 쓰기 작업이 가능합니다.
*/
따라서, 위 명령은 "data"라는 이름의 볼륨을 생성하고, 이 볼륨을 호스트 시스템의 "/data" 경로에 바인딩하여 읽기 및 쓰기 작업을 가능하게 한다.
2. 볼륨 목록 확인
[coffee@localhost local]$ sudo docker volume ls
DRIVER VOLUME NAME
local dev-volume
[coffee@localhost local]$
3. 볼륨 검사
[coffee@localhost local]$ sudo docker volume inspect dev-volume
[
{
"CreatedAt": "2023-04-11T15:47:57+09:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/dev-volume/_data",
"Name": "dev-volume",
"Options": null,
"Scope": "local"
}
]
[coffee@localhost local]$
4. 볼륨제거
[coffee@localhost local]$ sudo docker volume rm dev-volume
dev-volume
5. 마운트 되지 않은 volume 삭제
[coffee@localhost local]$ sudo docker volume prune
[sudo] password for coffee:
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0B
[coffee@localhost local]$
6. 생성한 볼륨을 마운트하여 컨테이너 실행
내 경우 호스트 머신에서 생성한 dev-volume을 컨테이너의 /usr/local/src 디렉토리에 마운트 시켰다. 자신이 원하는 디렉토리에 마운트 시키면 된다.
[coffee@localhost local]$ sudo docker run --privileged -p 82:80 -p 10002:10000 -p 3002:3000 -v dev-volume:/usr/local/src --name test03 test:0.2 init
[sudo] password for coffee:
7. 연동 테스트
7.1. 호스트 머신에서 파일 생성/작성하고 컨테이너에서 확인하기
호스트 머신에서 volume 내에 fileFromHost.txt라는 파일을 생성하고 파일 내용을 작성하였다. "this is in host machine"
[root@localhost _data]# pwd
/var/lib/docker/volumes/dev-volume/_data
[root@localhost _data]#
[root@localhost _data]# touch fileFromHost.txt
[root@localhost _data]# vi fileFromHost.txt
[root@localhost _data]# cat fileFromHost.txt
this is in host machine
[root@localhost _data]#
컨테이너의 /usr/local/src 디렉토리에서 fileFromHost.txt 파일을 확인하고 내용 역시 확인하였다.
[root@caf37a1af52f src]# cat fileFromHost.txt
this is in host machine
[root@caf37a1af52f src]# pwd
/usr/local/src
[root@caf37a1af52f src]# ls
fileFromHost.txt
[root@caf37a1af52f src]# cat fileFromHost.txt
this is in host machine
[root@caf37a1af52f src]#
7.2. 컨테이너에서 파일 생성/작성하고 호스트 머신에서 확인하기
여기에서는 생략되었지만 컨테이너 내부의 /usr/local/src 디렉토리에 fileFromContainer.txt 파일을 생성하고 내용을 작성하였다. 대략 아래와 같은 작업하였다.
# touch /usr/local/src/fileFromContainer.txt
# vi fileFromContainer.txt
# 내용 작성 "this is in container"
호스트 머신의 볼륨이 위치한 디렉토리(/var/lib/docker/volume/_data)에서 fileFromContainer 파일과 그 내용을 확인하였다.
[root@localhost _data]#
[root@localhost _data]# pwd
/var/lib/docker/volumes/dev-volume/_data
[root@localhost _data]# ls
fileFromContainer.txt fileFromHost.txt
[root@localhost _data]# cat fileFromContainer.txt
this is in container
[root@localhost _data]#
이로써 상호 연동되는 모습을 확인할 수 있다.
'OS 및 기타 > docker & kubernetes' 카테고리의 다른 글
[Docker]docker에서 mariadb 컨테이너 구동하는 방법(docker-compose) (0) | 2023.04.20 |
---|---|
docker file 도커파일 만들기 (0) | 2023.03.31 |
[Docker] 테스트 서버 구축 (0) | 2023.03.08 |
[Docker] 기초 명령어 (0) | 2023.01.15 |
[Docker] CentOS 환경에서 docker설치 (0) | 2023.01.15 |
Comments