Docker 명령 정리
Docker Volume
다수의 Container로 구성된 소프트웨어 실행
Image 관련
docker build --platform=linux/amd64 -t namespace/image_name
: Image 생성 시 플랫폼 및 태그 지정
docker images
or docker image ls
: Image 목록 조회
docker rmi
or docker image rm
: Image 삭제
Docker Hub 관련
docker login -u username -p password
: Docker Hub에 로그인
docker pull namespace/image_name
: Docker Hub에서 Image 다운로드
docker push namespace/image_name
: Docker Hub에 Image 업로드
Container 관련
docker create
: Container 생성
docker run --name -p -v image_name
: Container 생성 및 실행
docker ps
: Container 리스트 출력
-a
: 종료된 Container도 함께 출력
-q
: Container ID만 출력
docker stop container_name
: Container 종료
docker start container_name
: 생성된 Container 실행
docker restart container_name
: Container 재시작
docker kill container_name
: Container 강제 종료
docker pause container_name
: 실행 중인 Container 일시 중지
docker unpause container_name
: 일시 중지된 Container 재실행
docker rm container_name
: Container 삭제
logs 관련
docker logs -f container_name
: 실시간 로그 스트리밍
docker logs --tail 100 container_name
: 마지막으로부터 100건의 로그만 출력
docker exec
: 실행 중인 Container에 접속
백그라운드 / 포그라운드 실행 관련
docker run -d image_name
: Container 백그라운드로 실행
docker attach container_name
: 백그라운드로 실행 중인 Container 포그라운드로 전환
특정 소프트웨어가 Docker Container로 실행되었을 때 일회성이 아닌 계속 동작해야 한다면, 데이터가 영구적으로 보관되어야 함
Docker Container 내의 가상 파일 시스템과 호스트 시스템의 파일 시스템을 매핑(마운트)하는 것
마운트: 디스크와 같은 물리적 장치를 파일 시스템의 특정 폴더와 연결하는 것
호스트에서 내용 수정 시 Container에도 반영되게 설정 가능
ex) Container와 호스트 시스템이 특정 폴더 공유
Docker Volume 타입
Host Volume
docker run -v host_path:container_path
Anonymous Volume
docker run -v container_path
dockerfile에서 사용되는 방식으로, 호스트쪽에 액세스되지는 않지만 재시작해도 유지됨
Named Volume
docker run -v name:container_path
docker-compose에서도 사용되며, 가장 많이 선호되는 방식
하나의 Volume을 다수의 Container에서 공유 가능
Docker Volume 명령어
docker volume ls
: 생성된 Volume의 일부 조회
docker volume rm
: Volume 삭제
docker volume prune
: Container에서 사용되지 않는 모든 Volume 삭제
docker volume inspect
: Volume 상세 정보 확인
여러 개의 Image를 단순히 실행한다고 하나의 소프트웨어처럼 동작하지 않음
docker network create mynetwork
: 네트워크 생성
--network mynetwork
옵션 부여Docker 환경을 cleanup하기 위해서는 Docker Desktop에서 삭제하는 것이 가장 직관적