💡 핵심 요약 (Executive Summary)
본 가이드는 oci docker 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.
📑 Table of Contents
하위 페이지
Installation
Completion
html
sudo curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /etc/bash_completion.d/docker
Exec
bash
# 컨테이너 실행 (포트포워딩)
docker run -p ${hostPort}:${containerPort} {{ container image }}
# docker run -d -p 80:80 docker/getting-started
# 이미지 리스트
docker images
# 컨테이너 리스트
docker container ls
# 태그 혹은 리포지토리 경로 변경
docker tag {{ localImage }} {{ newLocalImage }}
# 이미지 삭제
docker rmi {{ localImage }}
# 파일로 이미지 로드
docker load -i {{ file }}
# 푸쉬 & 풀
docker pull {{ image }}
docker push {{ localImage }}
# 특정 아키텍처로 pull
docker pull --platform linux/amd64 {{ image }}
# tar 저장
docker save -o ${TAR_FILE} $IMAGE_TAG
# 컨테이너 종료
# docker stop 190caabec48b
docker stop {{ container id }}
# 컨테이너 조회
docker ps -a
# 컨테이너 재시작
docker restart {{ container id }}
# build: Dockerfile 경로에서
docker build -t ${registry}/${image}:${tag} .
run
bash
docker run -d -p $external_port1:$internal_port1 -p $external_port2:$internal_port2 $image
#docker run -d -p 80:8080 -p 443:443 tomcat:8.5.100-jdk8
init: required docker-desktop
bash
# 자동생성:
### .dockerignore
### Dockerfile
### compose.yaml
### README.Docker.md
docker init
buildx
bash
# 특정 아키텍처로 build
docker buildx build --platform linux/amd64 -t {{ registry/image:tag }} ./{{ .DockerFile_Dir }}
# layer cache를 레지스트리에 로드하여 build, Cache를 레지스트리에 전송
docker buildx build \
--cache-from type=registry,ref=$registry/$image \
--cache-to type=registry,ref=$registry/$image,mode=max \
-t $myImage .
# layer cache를 레지스트리에 로드하여 build, Cache를 이미지와 함께 레지스트리에 전송
docker buildx build \
--cache-from type=registry,ref=$registry/$image \
--cache-to type=registry,ref=$registry/$image,mode=max \
-t $myImage .
mount cache 조회 (buildx, builldkit)
bash
docker buildx du --verbose | awk '
/ID:/ {id_block=$0; id=$2}
/Created at:/ {ca=$0}
/Size:/ {sz=$0}
/Description:/ {
if ($0 ~ /npm-cache|mvn-cache|node-modules/) {
print "--------------------------------------------------"
print id_block
print ca
print sz
print $0
}
}'
- 단건 조회
bash
docker buildx du --filter id=$(docker buildx du --verbose | awk '/ID:/ {id=$2} /npm-cache/ {print id}') --verboseSample
Features
이미지명 전체로 이미지 ID 찾기
bash
docker ps -a --filter "name=^registry$" --quiet
docker ps -a --format "{{.ID}}" --filter "name=^registry$"
gzip 활용
bash
# 작은용량을 위해 gzip 활용
## save
docker save myimage:latest | gzip > myimage.tgz
## load
gunzip -c myimage.tgz | docker load
gzip -dc myimage.tgz | docker load
Multi Archi Image 빌드 및 push
bash
# buildx build는 buildkit을 이용한 확장버전으로 멀티아키텍처 등의 기능을 제공
docker buildx build --platform linux/amd64,linux/arm64 -t <your-harbor-url>/<project>/<repository>:<tag> --push .
이미지 아키텍처 확인
bash
imageID=
docker image inspect $imageID | jq ".[0].Architecture"
다음과 같이 차지하는 볼륨 정리
bash
overlay 50G 48G 2.1G 96% /var/lib/docker/overlay2/51b6af2e181a7fc58ca5a422e5981ad586b573a4af31fef161ac89d7769e9160/merged
shm 64M 0 64M 0% /var/lib/docker/containers/25a1e50390c9c57905143198c711f7825f07f82e73ef7f23b20975338b4ddb48/mounts/shm
overlay 50G 48G 2.1G 96% /var/lib/docker/overlay2/49d4441a7be9a9f190966da8a4f0d030c522080c472daba32dff695bdbff410c/merged
shm 64M 0 64M 0% /var/lib/docker/containers/ad65a77e421fa9acec8a2992682c96a8d339ce8af44b36822112c661604881c4/mounts/shm
overlay 50G 48G 2.1G 96% /var/lib/docker/overlay2/c0d3521b5e7e33caf2a638c82f0337e5fe3aa12857d0a51f3e36d9c1457ca812/merged
overlay 50G 48G 2.1G 96% /var/lib/docker/overlay2/9b27fc528efa51d669eca6b6cce7c347ce18aabed5b20828779153d68997b49e/merged
overlay 50G 48G 2.1G 96% /var/lib/docker/overlay2/9d75dc199db325f6b18ce17023c0ee7ac9df85c086ca91b1868fb94e7a2692e9/merged
bash
docker system prune -a --volumes -f
-
점유 메모리 강제 삭제
bash
# 모든 컨테이너 중지 (에이전트가 없을 때 실행 권장) docker stop $(docker ps -a -q) # 모든 이미지 강제 삭제 docker rmi -f $(docker images -q) docker container prune -f docker volume prune -f docker builder prune -a -f docker system prune -a --volumes -f
Leave a Reply