본문으로 건너뛰기

도커 실습: 컨테이너 파일 복사, 볼륨 마운트, 이미지 생성, 도커허브 등록

Section1. 내게 필요한 지식이 무엇인지 정리하기

서버 & 보안 엔지니어에게 특히 중요한 핵심 개념들:

  • 파일 복사: 컨테이너와 호스트 간 양방향 파일 이동
  • 볼륨 마운트:
    • 바인드 마운트: 로컬 디렉터리 ↔ 컨테이너 연동
    • 볼륨 마운트: OS와 무관한 독립 스토리지
  • 이미지 생성: 컨테이너 → 이미지로 변환
  • 컨테이너 개조: 직접 쉘에 접근하여 소프트웨어 수정
  • 도커 허브 로그인: 이미지 공유 및 배포 준비

예습할 다음 장 요약:

  • 도커 컴포즈: 복수 컨테이너 및 설정을 한꺼번에 정의
  • 쿠버네티스: 여러 서버에서 대규모로 컨테이너 관리

Section2. 컨테이너와 호스트 간에 파일 복사하기

docker cp [원본 경로] [대상 경로]

예시:

docker cp ./myfile.txt my-container:/app/myfile.txt
docker cp my-container:/app/log.txt ./log.txt

Section3. 볼륨 마운트

마운트 종류

항목볼륨 마운트바인드 마운트
스토리지도커 관리 볼륨로컬 디렉터리
위치도커 내부사용자가 지정
생성 방법도커 명령어로 생성기존 경로를 마운트
사용 목적환경 무관 데이터 공유개발 파일 실시간 반영
백업다소 복잡파일 복사로 가능

볼륨 명령어

alt text

docker volume create my-volume
docker volume inspect my-volume
docker volume rm my-volume

마운트 커맨드

alt text

docker run -v my-volume:/app/path image-name
docker run -v /host/path:/container/path image-name

바인드 마운트 실습

docker run --name apa000ex20 -d -p 8080:80 \
-v $(pwd)/html:/usr/local/apache2/htdocs httpd

해당 경로에 index.html을 두고 브라우저 확인.


볼륨 마운트 실습

docker volume create apa001vol1

docker run --name apa000ex21 -d -p 8080:80 \
-v apa001vol1:/usr/local/apache2/htdocs httpd

볼륨 백업

docker run --rm \
-v apa001vol1:/source \
-v $(pwd)/backup:/target \
busybox tar cvzf /target/backup_apa.tar.gz -C /source .

볼륨 복원

docker run --rm \
-v apa001vol1:/source \
-v $(pwd)/backup:/target \
busybox tar xzvf /target/backup_apa.tar.gz -C /source

Section4. 컨테이너로 이미지 만들기

방법 1: commit 명령어

docker commit [컨테이너 이름] [새 이미지 이름]

예시:

docker commit apa000ex22 ex22_original1

방법 2: Dockerfile

FROM httpd
COPY index.html /usr/local/apache2/htdocs

빌드:

docker build -t ex22_original2 .

Section5. 컨테이너 개조

bash 진입

docker exec -it apa000ex22 /bin/bash
  • run으로도 진입 가능하나 변경 사항 반영 안 될 수 있음
  • exit 명령으로 종료

Section6. 도커 허브 등록 및 로그인

로그인

docker login

태그 부여

docker tag ex22_original1 lanace/ex22_original1:latest

이미지 업로드

docker push lanace/ex22_original1:latest

개인용 레지스트리 실행

docker run -d -p 5000:5000 registry

이후 내부에서:

docker tag myimage localhost:5000/myimage
docker push localhost:5000/myimage

🧼 Tip
실습이 끝난 컨테이너, 이미지, 볼륨은 주기적으로 삭제하자.
환경 정리는 도커 학습의 좋은 습관!

docker container rm -f [이름]
docker image rm [이름]
docker volume rm [이름]