💡 컨테이너와 호스트 사이 파일 복사
- 컨테이너에서 호스트로, 호스트에서 컨테이너로 파일 복사하기(양방향 모두 가능)
- 호스트 쪽 파일은 어디에 위치한 파일이라도 복사가 가능하며, 컨테이너 쪽에서도 파일을 복사할 경로를 지정 가능
- 컨테이너로 파일을 복사하는 커맨드(호스트 → 컨테이너)
docker cp {호스트 경로} {컨테이너 이름:컨테이너 경로}
- 호스트로 파일을 복사하는 커맨드(컨테이너 → 호스트)
docker cp {컨테이너 이름:컨테이너 경로} {호스트 경로}
즉, 다음과 같이 cp 커맨드 뒤로 '원본_경로 복사할_경로' 순서로 기재
docker cp 원본_경로 복사할_경로
- 파일명 변경하기 - mv
mv /hone/사용자명/index.html /home/사용자명/index2.html
- 파일 삭제하기 - rm
rm /home/사용자명/index.html
💡볼륨 마운트
볼륨이란? 스토리지의 한 영역을 분할한 것
마운트란? '연결하다'의 의미로, 대상을 연결해 운영체제 또는 소프트웨어의 관리하에 두는 일을 말함
바인드 마운트 - 컨테이너와 파일을 연동하는 데 많이 사용하며, 마운트 대상이 되는 스토리지는 볼륨 외에도 디렉토리 파일, 메모리가 될 수 있음. 도커 엔진에서 관리하지 않는 영역의 기존 디렉터리를 컨테이너에 마운트하는 방식임.
데이터 퍼시스턴시(data persistency) - 데이터를 두는 장소가 마운트된 스토리지 영역
- 파일을 직접 편집해야 할 일이 많다면 바인드 마운트 사용, 그렇지 않다면 볼륨 마운트 사용 (아래표 참고)
- 볼륨 마운트의 볼륨은 미리 만들어 놓는 것이 좋음
항목 | 볼륨 마운트 | 바인드 마운트 |
스토리지 영역 | 볼륨 | 디렉터리 또는 파일 |
물리적 위치 | 도커 엔진의 관리 영역 | 어디든지 가능 |
마운트 절차 | 볼륨 생성 후 마운트 | 기존 파일 또는 폴더 마운트 |
내용 편집 | 도커 컨테이너를 통해서 | 일반적인 파일과 같이 |
백업 | 절차가 복잡함 | 일반적인 파일과 같이 |
- 어떤 마운트 방식을 사용하든 스토리지 마운트는 run 커맨드의 옵션 형태로 지정
# 바인드 마운트 커맨드 예
docker run (생략) -v {스토리지 실제 경로:컨테이너 마운트 경로} (생략)
# 볼륨 마운트 커맨드 예
docker run (생략) -v {볼륨 이름:컨테이너 마운트 경로} (생략)
- 볼륨 생성 (볼륨 마운트)
docker volume create {볼륨 이름}
- 볼륨 삭제 (볼륨 마운트)
docker volume rm {볼륨 이름}
- prune - 현재 마운트되지 않은 볼륨은 모두 삭제
- inspect - 볼륨의 상세 정보 출력
docker volume inspect {볼륨 이름}
💡컨테이너를 이미지로 만들기
컨테이너를 다른 컴퓨터 또는 서버로 복사하고 싶거나, 똑같은 컨테이너를 여러 개 만들고 싶을 때 컨테이너를 이미지로 만드는 방법이다. 이미지를 만드는 방법에는 두 가지가 있다.
- commit 커맨드로 컨테이너를 이미지로 변환
docker commit {컨테이너 이름} {새로운 이미지 이름}
- Dockerfile 스크랩트로 이미지 만들기
# 자주 사용되는 커맨드 예
docker build -t {생성할 이미지 이름} {재료, 폴더, 경로}
# Dockerfile 스크립트 예
FROM {이미지 이름}
COPY {원본 경로} {대상 경로}
RUN {리눅스 명령어}
💡컨테이너 개조
개발환경을 배포할 때 유용하게 활용할 수 있으며, 컨테이너 개조 방법에는 두 가지 방법이 있다. 대부분 이 두 가지 방법을 혼용한다.
- docker exec - 컨테이너 속에서 명령어를 실행하는 커맨드로, bash를 통해 컨테이너 내부를 조작하는 동안에는 도커 명령을 사용할 수 없음
docker exec (옵션) {컨테이너 이름} /bin/bash
- exit - 도커 엔진에 명령을 내릴 수 있도록 컨테이너에서 나오는 명령어
💡도커 허브 로그인
도커 허브는 직접 만든 컨테이너를 다른 사람에게 공개하기 위해서 사용
- 도커 레지스트리 - 이미지를 배포하는 장소로, 일반에 공개되어 있든 비공개이든 상관없이 이미지가 배포되는 곳 모두 도커 레지스트리
- 도커 허브 - 도커 제작사에서 운영하는 공식 도커 레지스트리
- 레지스트리 - 이미지를 배포하는 장소, 리포지토리 - 레지스트리를 구성하는 단위
- 이미지에 태그를 부여해 복제하는 명령어의 예
docker tag {원래 이미지 이름} {레지스트리 주소/리포지토리 이름: 버전}
- 이미지를 업로드 하는 커맨드
docker push (docker image push)
http://www.yes24.com/Product/Goods/108431011
그림과 실습으로 배우는 도커 & 쿠버네티스 6장을 보고 정리한 내용이다. 더 자세한 내용은 위의 책을 참고하길 바란다.
'개발 관련 > Docker' 카테고리의 다른 글
쿠버네티스(Kubernetes) (0) | 2022.07.15 |
---|---|
도커 컴포즈 (0) | 2022.07.09 |
여러 개의 컨테이너를 연동해 실행하기 (0) | 2022.06.25 |
컨테이너 사용하기 (+ 아파치) (0) | 2022.06.25 |
도커 엔진 시작 및 종료 (0) | 2022.06.25 |