1. Docker 소개 및 설치
Docker는 애플리케이션을 독립적인 환경에서 실행할 수 있도록 지원하는 컨테이너화 플랫폼입니다. CentOS 7에서는 아래와 같은 간단한 명령으로 Docker를 설치할 수 있습니다.
yum install -y docker
systemctl start docker
2. Docker 기본 명령어 사용법
2.1 이미지 관리
Docker 이미지는 컨테이너 생성의 기본 요소입니다. 다음은 주요 이미지 관련 명령어입니다.
# 이미지 생성 및 관리
docker build -t 이름:버전 . # Dockerfile로부터 이미지 빌드
docker images # 로컬에 저장된 모든 이미지 목록 표시
docker pull 이름:태그 # 원격 저장소에서 이미지 다운로드
docker push 이름:태그 # 원격 저장소로 이미지 업로드
docker rmi 이름:태그 # 지정된 이미지 삭제
docker tag 이름:현재태그 이름:새태그 # 이미지 태그 변경
# 기타 정보 확인
docker history 이름:태그 # 이미지 변환 기록 확인
docker inspect 이름:태그 # 이미지 상세 정보 출력
2.2 컨테이너 생명주기 제어
컨테이너는 Docker 이미지를 기반으로 생성되며, 다양한 상태로 전환될 수 있습니다.
# 컨테이너 시작 및 중지
docker run -d --name 이름 이미지명 # 새로운 컨테이너 실행
docker start 이름 # 정지된 컨테이너 재시작
docker stop 이름 # 실행 중인 컨테이너 중지
docker kill 이름 # 강제로 컨테이너 종료
# 컨테이너 상태 확인 및 관리
docker ps # 실행 중인 컨테이너 목록 표시
docker ps -a # 모든 컨테이너 목록 표시
docker logs 이름 # 컨테이너 로그 출력
docker stats # 실시간 리소스 사용량 확인
# 컨테이너 내부 작업
docker exec -it 이름 /bin/bash # 실행 중인 컨테이너에 접근
docker attach 이름 # 컨테이너 콘솔 연결
docker pause 이름 # 컨테이너 일시 정지
docker unpause 이름 # 컨테이너 다시 시작
# 컨테이너 삭제
docker rm 이름 # 정지된 컨테이너 삭제
docker rename 현재이름 새이름 # 컨테이너 이름 변경
2.3 파일 시스템 조작
컨테이너와 호스트 시스템 간의 데이터 교환은 다음과 같이 수행됩니다.
docker cp 이름:/경로/파일 ./로컬경로 # 컨테이너에서 파일 복사
docker diff 이름 # 컨테이너 파일 시스템 차이점 확인
docker export 이름 > 파일명.tar # 컨테이너 내용物 tar 파일로 내보내기
docker import 파일명.tar 이름:태그 # tar 파일로부터 새로운 이미지 생성
2.4 볼륨(Volume) 관리
데이터 볼륨은 컨테이너 간 데이터 공유와 영구 저장을 가능하게 합니다.
# 볼륨 기본 조작
docker volume create 이름 # 새로운 볼륨 생성
docker volume ls # 모든 볼륨 목록 표시
docker volume inspect 이름 # 특정 볼륨 정보 확인
docker volume rm 이름 # 사용하지 않는 볼륨 삭제
docker volume prune # 불필요한 모든 볼륨 정리
2.5 네트워크 설정
컨테이너 간 통신을 위한 네트워크 구성도 중요합니다.
# 네트워크 생성 및 관리
docker network create 이름 # 새로운 네트워크 생성
docker network connect 이름 컨테이너 # 컨테이너 네트워크 연결
docker network disconnect 이름 컨테이너 # 컨테이너 네트워크 해제
docker network inspect 이름 # 네트워크 정보 상세 출력
docker network ls # 모든 네트워크 목록 표시
docker network prune # 사용되지 않는 네트워크 삭제
2.6 시스템 정보 확인
Docker 시스템 상태와 버전 정보는 다음과 같이 확인할 수 있습니다.
docker version # Docker 클라이언트 및 서버 버전 확인
docker info # Docker 시스템 전체 정보 출력
docker events # 실시간 이벤트 모니터링