도커 실습: 컨테이너 파일 복사, 볼륨 마운트, 이미지 생성, 도커허브 등록
Section1. 내게 필요한 지식이 무엇인지 정리하기
서버 & 보안 엔지니어에게 특히 중요한 핵심 개념들:
- 파일 복사: 컨테이너와 호스트 간 양방향 파일 이동
- 볼륨 마운트:
- 바인드 마운트: 로컬 디렉터리 ↔ 컨테이너 연동
- 볼륨 마운트: OS와 무관한 독립 스토리지
- 이미지 생성: 컨테이너 → 이미지로 변환
- 컨테이너 개조: 직접 쉘에 접근하여 소프트웨어 수정
- 도커 허브 로그인: 이미지 공유 및 배포 준비
예습할 다음 장 요약:
- 도커 컴포즈: 복수 컨테이너 및 설정을 한꺼번에 정의
- 쿠버네티스: 여러 서버에서 대규모로 컨테이너 관리
Section2. 컨테이너와 호스트 간에 파일 복사하기
docker cp [원본 경로] [대상 경로]
예시:
docker cp ./myfile.txt my-container:/app/myfile.txt
docker cp my-container:/app/log.txt ./log.txt
Section3. 볼륨 마운트
마운트 종류
| 항목 | 볼륨 마운트 | 바인드 마운트 |
|---|---|---|
| 스토리지 | 도커 관리 볼륨 | 로컬 디렉터리 |
| 위치 | 도커 내부 | 사용자가 지정 |
| 생성 방법 | 도커 명령어로 생성 | 기존 경로를 마운트 |
| 사용 목적 | 환경 무관 데이터 공유 | 개발 파일 실시간 반영 |
| 백업 | 다소 복잡 | 파일 복사로 가능 |
볼륨 명령어

docker volume create my-volume
docker volume inspect my-volume
docker volume rm my-volume
마운트 커맨드

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 [이름]