소개
Docker CLI 는 개발자가 명령줄 인터페이스를 통해 Docker 컨테이너, 이미지 및 네트워크와 상호 작용할 수 있도록 하는 강력한 도구입니다. 이 포괄적인 튜토리얼에서는 필수적인 Docker CLI 기술을 안내하여 컨테이너를 효율적으로 관리 및 조작하고, 견고한 개발 환경을 구축하고, 컨테이너화 워크플로우를 최적화하는 방법을 이해하는 데 도움을 드립니다.
Docker CLI 는 개발자가 명령줄 인터페이스를 통해 Docker 컨테이너, 이미지 및 네트워크와 상호 작용할 수 있도록 하는 강력한 도구입니다. 이 포괄적인 튜토리얼에서는 필수적인 Docker CLI 기술을 안내하여 컨테이너를 효율적으로 관리 및 조작하고, 견고한 개발 환경을 구축하고, 컨테이너화 워크플로우를 최적화하는 방법을 이해하는 데 도움을 드립니다.
Docker 명령줄 인터페이스 (CLI) 는 Docker 데몬과 상호 작용하고 컨테이너, 이미지, 네트워크 및 볼륨을 관리할 수 있는 강력한 도구입니다. 텍스트 기반 인터페이스를 제공하여 Docker 명령을 실행하고 다양한 작업을 수행합니다.
Docker CLI 를 사용하기 전에 Ubuntu 22.04 시스템에 Docker 가 설치되어 있는지 확인하십시오.
## 패키지 인덱스 업데이트
sudo apt update
## Docker 설치
sudo apt install docker.io
## 설치 확인
docker --version
Docker CLI 명령은 표준 구문을 따릅니다.
docker <객체> <명령> <옵션>
| 카테고리 | 목적 |
|---|---|
| 관리 명령 | Docker 객체 관리 |
| 이미지 명령 | 이미지 가져오기, 빌드 및 관리 |
| 컨테이너 명령 | 컨테이너 생성, 실행 및 제어 |
| 네트워크 명령 | Docker 네트워크 구성 |
| 볼륨 명령 | 지속적인 데이터 저장소 관리 |
모든 명령에 sudo 를 사용하지 않으려면 사용자를 docker 그룹에 추가하십시오.
## 현재 사용자를 docker 그룹에 추가
sudo usermod -aG docker $USER
## 세션 재시작
newgrp docker
구성 파일은 일반적으로 다음 위치에 있습니다.
/etc/docker/daemon.json (전역)~/.docker/config.json (사용자별)이러한 기본 사항을 이해함으로써 사용자는 컨테이너화 작업에 Docker CLI 를 효과적으로 활용할 수 있습니다. LabEx 는 Docker 관리에 대한 강력한 기반을 구축하기 위해 이러한 기본 명령을 연습할 것을 권장합니다.
## Docker Hub에서 이미지 가져오기
docker pull ubuntu:latest
docker pull nginx:1.21
## 모든 로컬 이미지 목록
docker images
docker image ls
## Dockerfile에서 이미지 빌드
docker build -t myapp:v1 .
## 새 컨테이너 실행
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
| 명령어 | 설명 | 예시 |
|---|---|---|
docker ps |
실행 중인 컨테이너 목록 | docker ps |
docker ps -a |
모든 컨테이너 목록 | docker ps -a |
docker start |
중지된 컨테이너 시작 | docker start web-server |
docker stop |
실행 중인 컨테이너 중지 | docker stop web-server |
docker rm |
컨테이너 제거 | docker rm web-server |
## 사용자 정의 네트워크 생성
docker network create mynetwork
## 네트워크 목록
docker network ls
## 컨테이너를 네트워크에 연결
docker network connect mynetwork web-server
## 볼륨 생성
docker volume create mydata
## 볼륨 목록
docker volume ls
## 컨테이너에 볼륨 마운트
docker run -v mydata:/app nginx
## 컨테이너 로그 보기
docker logs web-server
## 실행 중인 컨테이너에서 명령 실행
docker exec -it web-server bash
## 컨테이너 세부 정보 검사
docker inspect web-server
## 사용되지 않는 이미지 제거
docker image prune
## 중지된 모든 컨테이너 제거
docker container prune
LabEx 는 이러한 일반적인 Docker CLI 명령어를 숙달하여 컨테이너화된 환경을 효율적으로 관리할 것을 권장합니다.
## 프로젝트 복제
git clone https://github.com/example/project
## Dockerfile 생성
touch Dockerfile
## 이미지 빌드
docker build -t myapp:dev .
## 테스트용 컨테이너 실행
docker run -d --name test-container myapp:dev
## 빌드 인수를 사용하여 이미지 빌드
docker build --build-arg ENV=development -t myapp:ci .
## 자동화된 테스트 실행
docker run --rm myapp:ci npm test
| 단계 | Docker 명령어 | 목적 |
|---|---|---|
| 빌드 | docker build |
이미지 생성 |
| 테스트 | docker run |
컨테이너 유효성 검사 |
| 푸시 | docker push |
이미지 공유 |
| 배포 | docker run |
프로덕션에서 실행 |
## docker-compose.yml에서 서비스 정의
version: '3'
services:
web:
build: .
ports:
- "8000:80"
database:
image: postgres:latest
## 다중 컨테이너 환경 시작
docker-compose up -d
## 마이크로서비스용 네트워크 생성
docker network create microservices-net
## 네트워크 연결로 서비스 실행
docker run -d --name api --network microservices-net myapi
docker run -d --name database --network microservices-net mydb
## 컨테이너 로그 검사
docker logs api-service
## 대화형 쉘 실행
docker exec -it api-service /bin/bash
## 컨테이너 리소스 사용량 확인
docker stats api-service
## 프로덕션용 이미지 태깅
docker tag myapp:latest myregistry.com/myapp:v1.0
## 개인 레지스트리에 푸시
docker push myregistry.com/myapp:v1.0
## 프로덕션에서 풀 및 실행
docker pull myregistry.com/myapp:v1.0
docker run -d myregistry.com/myapp:v1.0
LabEx 는 이러한 워크플로 패턴을 연습하여 Docker 컨테이너 관리 및 배포 프로세스를 간소화할 것을 권장합니다.
Docker CLI 명령어와 워크플로 패턴을 숙달함으로써 개발자는 컨테이너 관리 기술을 크게 향상시킬 수 있습니다. 이 튜토리얼은 Docker 컨테이너를 탐색, 생성, 관리 및 최적화하는 기본적인 기술을 제공하여, 현대 소프트웨어 개발 및 배포 시나리오에서 Docker 의 전체적인 잠재력을 활용할 수 있도록 지원합니다.