init
Docker는 컨테이너 기술을 활용해 애플리케이션을 효율적으로 배포, 실행, 관리할 수 있는 강력한 도구입니다. 하지만 처음 접하면 방대한 명령어들 때문에 어디서부터 시작해야 할지 막막할 수 있죠. 그래서 이번 글에서는 Docker를 효과적으로 활용하기 위해 꼭 알아야 할 명령어들을 카테고리별로 정리했습니다.
1. Docker 이미지 관리 (Manage Images)
Docker 이미지는 컨테이너를 실행하기 위한 기반이 됩니다. 이미지를 잘 관리하면 작업 효율을 크게 높일 수 있습니다.
- `docker image ls`: 현재 시스템에 저장된 Docker 이미지 목록을 확인합니다.
- `docker image rm `: 필요 없는 이미지를 삭제하여 저장 공간을 절약합니다.
- ex) docker image rm <이미지ID>
- `docker build`: Dockerfile을 기반으로 새 이미지를 생성합니다.
- ex) docker build -t <이미지이름:태그> <경로>
- `docker commit`: 실행 중인 컨테이너를 기반으로 새로운 이미지를 만듭니다.
- ex) docker commit <컨테이너ID> <이미지이름:태그>
- `docker import`: 기존 파일을 가져와 Docker 이미지로 변환합니다.
- ex) docker import <파일경로>
- `docker history`: 이미지가 생성된 과정을 확인할 수 있습니다.
- ex) docker history <이미지ID>
2. Docker 레지스트리 관리 (Registry)
Docker 레지스트리는 이미지를 업로드하거나 다운로드할 수 있는 저장소 역할을 합니다.
- `docker login`: Docker Hub 또는 개인 레지스트리에 로그인합니다.
- `docker logout`: 로그인된 계정을 로그아웃합니다.
- `docker push`: 로컬 이미지를 레지스트리에 업로드합니다.
- ex) docker push <이미지이름:태그>
- `docker pull`: 레지스트리에서 이미지를 다운로드합니다.
- ex) docker pull <이미지이름:태그>
- `docker search`: 레지스트리에서 이미지를 검색합니다.
- ex) docker search <키워드>
- `docker tag`: 이미지에 태그를 추가하여 버전 관리를 쉽게 할 수 있습니다.
- ex) docker tag <이미지ID> <새로운태그>
3. Docker 정리 작업 (Clean Up)
Docker 환경을 깨끗하게 유지하려면 주기적으로 사용하지 않는 리소스를 정리해야 합니다.
- `docker rm`: 실행 중이지 않은 컨테이너를 삭제합니다.
- ex) docker rm <컨테이너ID>
- `docker rmi`: 더 이상 필요 없는 이미지를 삭제합니다.
- ex) docker rmi <이미지ID>
- `docker kill`: 실행 중인 컨테이너를 강제 종료합니다.
- ex) docker kill <컨테이너ID>
- `docker prune`: 사용하지 않는 네트워크, 볼륨, 이미지 등을 한 번에 삭제합니다.
4. Docker 볼륨 관리 (Volume)
Docker 볼륨은 컨테이너 간 데이터를 공유하거나 데이터를 영구적으로 저장할 때 사용됩니다.
- `docker volume create`: 새로운 볼륨을 생성합니다.
- ex) docker volume create <볼륨이름>
- `docker volume ls`: 현재 시스템에 생성된 볼륨 목록을 확인합니다.
- `docker volume rm`: 사용하지 않는 볼륨을 삭제합니다.
- ex) docker volume rm <볼륨이름>
5. Docker 컨테이너 관리 (Manage Containers)
컨테이너는 Docker의 핵심입니다. 아래 명령어를 통해 컨테이너를 효율적으로 관리할 수 있습니다.
- `docker run`: 새로운 컨테이너를 실행합니다.
- ex) docker run <이미지이름>
- `docker start`: 정지된 컨테이너를 다시 실행합니다.
- ex) docker start <컨테이너ID>
- `docker stop`: 실행 중인 컨테이너를 정지합니다.
- ex) docker stop <컨테이너ID>
- `docker restart`: 컨테이너를 재시작합니다.
- ex) docker restart <컨테이너ID>
- `docker exec`: 실행 중인 컨테이너 내부에서 명령어를 실행합니다.
- ex) docker exec -it <컨테이너ID> <명령어>
- `docker ps`: 실행 중인 컨테이너 목록을 확인합니다.
- `docker logs`: 컨테이너의 로그를 확인합니다.
- ex) docker logs <컨테이너ID>
- `docker pause`: 컨테이너를 일시 중지합니다.
- ex) docker pause <컨테이너ID>
- `docker wait`: 컨테이너가 종료될 때까지 대기합니다.
- ex) docker wait <컨테이너ID>
- `docker export`: 컨테이너의 파일 시스템을 아카이브 파일로 저장합니다.
- ex) docker export <컨테이너ID> > <파일이름>.tar
- `docker rename`: 컨테이너의 이름을 변경합니다.
- ex) docker rename <컨테이너ID> <새이름>
6. Docker 서비스 관리 (Service)
Docker 서비스는 여러 컨테이너를 묶어 애플리케이션을 배포, 관리할 때 유용합니다.
- `docker service ls`: 실행 중인 서비스 목록을 확인합니다.
- `docker service ps`: 서비스의 상태를 확인합니다.
- ex) docker service ps <서비스이름>
- `docker service create`: 새로운 서비스를 생성합니다.
- ex) docker service create <옵션> <이미지이름>
- `docker service update`: 기존 서비스를 업데이트합니다.
- ex) docker service update <서비스이름>
- `docker service scale`: 서비스의 인스턴스 수를 조정합니다.
- ex) docker service scale <서비스이름>=<인스턴스수>
- `docker service logs`: 서비스의 로그를 확인합니다.
- ex) docker service logs <서비스이름>
- `docker stack services`: 스택에 포함된 서비스 목록을 확인합니다.
- ex) docker stack services <스택이름>
7. Docker 네트워크 관리 (Network)
컨테이너 간 통신을 설정하려면 네트워크를 구성해야 합니다.
- `docker network create`: 새로운 네트워크를 생성합니다.
- ex) docker network create <네트워크이름>
- `docker network ls`: 생성된 네트워크 목록을 확인합니다.
- `docker network rm`: 사용하지 않는 네트워크를 삭제합니다.
- ex) docker network rm <네트워크이름>
- `docker network connect`: 컨테이너를 특정 네트워크에 연결합니다.
- ex) docker network connect <네트워크이름> <컨테이너ID>
- `docker network disconnect`: 컨테이너를 네트워크에서 분리합니다.
- ex) docker network disconnect <네트워크이름> <컨테이너ID>
- `docker network inspect`: 네트워크의 상세 정보를 확인합니다.
- ex) docker network inspect <네트워크이름>
8. 요약
기본 명령어 총 정리 이미지 입니다.
마무으리
Docker는 처음 접하면 다소 복잡하게 느껴질 수 있지만, 저도 이 글을 준비하며 하나씩 배우고 있습니다. 위의 명령어들을 함께 익혀가며 Docker 환경을 조금씩 더 잘 활용할 수 있게 되기를 바랍니다. 이 글이 필요한 분들에게 도움이 되기를 바랍니다! 🙏
오늘도 감사합니다.
'Dev > Docker' 카테고리의 다른 글
[Docker] 컨테이너 라이프 사이클 & CLI (0) | 2025.02.11 |
---|---|
[Docker] Docker Compose 설치 & 개념 정리 (0) | 2025.02.07 |
[Docker] Docker 기초 이론 (0) | 2025.02.06 |
[Docker] 포테이너(Portainer) 설치 & 개념 정리 (1) | 2025.02.06 |
[Docker] Ubuntu 24.04 Docker 설치 (0) | 2025.02.05 |