개발자를 성장시키는 25가지 Docker 명령어(1)

Docker는 애플리케이션과 그 의존성을 패키징하여 이식 가능하고 격리된 컨테이너를 효율적으로 관리할 수 있게 해줍니다.

이론만 이해하는 것으로는 충분하지 않습니다. 개발자를 한 단계 더 성장시키는 것은 Docker 명령어를 활용해 워크플로를 최적화하고, 성능을 개선하며, 확장 가능한 애플리케이션을 구축하는 능력입니다.

이 글에서는 Docker 명령어 25가지를 소개하며, 이를 통해 개발 및 배포 프로세스를 완벽하게 제어하고 일상적인 작업을 개선하는 방법을 알려드립니다.

1. docker update

  • 설명: 컨테이너를 재시작하지 않고 리소스 제한을 업데이트합니다.
  • 장점: 중단 없이 리소스를 조정해 컨테이너 성능 저하를 방지합니다.
1
docker update --cpus 2 --memory 1g <container_name>
  • 팁: 트래픽이 많은 시간대에 리소스를 늘렸다가, 이후 다시 축소하여 자원을 절약하세요.

2. docker stats

  • 설명: 실행 중인 컨테이너의 실시간 리소스 사용량을 표시합니다.
  • 장점: CPU, 메모리, 네트워크 사용량을 실시간으로 모니터링할 수 있습니다.
1
docker stats <container_name>
  • 팁: --all 옵션으로 백그라운드 컨테이너까지 모니터링하세요.

3. docker diff

  • 설명: 컨테이너 파일 시스템에서 변경된 내용을 보여줍니다.
  • 장점: 배포 후 변경된 파일을 빠르게 확인하고 문제를 해결합니다.
1
docker diff <container_name>

4. docker commit

  • 설명: 컨테이너의 현재 상태를 기반으로 새로운 이미지를 생성합니다.
  • 장점: 변경된 상태를 저장해 디버깅이나 테스트 환경에 활용할 수 있습니다.
1
docker commit <container_name> <new_image_name>

5. docker cp

  • 설명: 컨테이너와 호스트 간 파일을 복사합니다.
  • 장점: 컨테이너를 중단하지 않고 로그나 설정 파일에 접근할 수 있습니다.
1
docker cp <container_name>:/path/to/file /host/path

6. docker build --squash

  • 설명: 빌드 중 레이어를 하나로 압축하여 이미지 크기를 줄입니다.
  • 장점: 이미지 크기를 줄여 로드 시간을 단축하고 저장 공간을 절약합니다.
1
docker build --squash -t <image_name> .

7. docker system df

  • 설명: Docker 디스크 사용량 요약 정보를 제공합니다.
  • 장점: 디스크 공간을 많이 차지하는 요소를 빠르게 파악할 수 있습니다.
1
docker system df

8. docker network inspect

  • 설명: Docker 네트워크의 상세 정보를 확인합니다.
  • 장점: 컨테이너 간 네트워킹 문제를 디버깅하는 데 유용합니다.
1
docker network inspect <network_name>

9. docker exec -u

  • 설명: 특정 사용자를 지정해 컨테이너에서 명령을 실행합니다.
  • 장점: 다양한 사용자 환경을 테스트할 때 유용합니다.
1
docker exec -u <user> <container_name> <command>

10. docker run --rm

  • 설명: 컨테이너 종료 후 자동으로 삭제합니다.
  • 장점: 임시 작업 후 불필요한 컨테이너를 자동으로 정리합니다.
1
docker run --rm <image_name>

11. docker-compose config

  • 설명: docker-compose.yml 파일을 검증하고 구성을 표시합니다.
  • 장점: 구성 파일의 구문 오류를 사전에 감지할 수 있습니다.
1
docker-compose config

12. docker rm -v

  • 설명: 컨테이너와 관련된 익명의 볼륨을 함께 삭제합니다.
  • 장점: 고아 볼륨을 방지해 디스크 공간을 효율적으로 사용합니다.
1
docker rm -v <container_name>

13. docker export / docker import

  • 설명: 컨테이너 파일 시스템을 tar 파일로 내보내거나 새 이미지로 가져옵니다.
  • 장점: 특정 상태를 다른 환경으로 쉽게 전환할 수 있습니다.
1
2
docker export <container_name> > container.tar
docker import container.tar <new_image_name>

14. docker history

  • 설명: 이미지의 각 레이어 변경 이력을 보여줍니다.
  • 장점: 큰 이미지를 디버깅하거나 최적화할 때 유용합니다.
1
docker history <image_name>

15. docker logs --since

  • 설명: 특정 시간 이후의 로그를 검색합니다.
  • 장점: 최근 업데이트 이후의 문제를 빠르게 찾을 수 있습니다.
1
docker logs --since "10m" <container_name>

내용이 많아, 다음 글에서 추가로 설명드리겠습니다.

Share