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 디스크 사용량 요약 정보를 제공합니다.
- 장점: 디스크 공간을 많이 차지하는 요소를 빠르게 파악할 수 있습니다.
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
파일을 검증하고 구성을 표시합니다.
- 장점: 구성 파일의 구문 오류를 사전에 감지할 수 있습니다.
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>
|
내용이 많아, 다음 글에서 추가로 설명드리겠습니다.