도커 명령어
| topics | 400-인프라 & 아키텍처 401 Docker & Kubernetes |
| types | 레퍼런스 실습 |
| tags | #docker #command |
도커 명령어
자주 쓰는 Docker 명령어를 정리했다. 전체 흐름은 이렇다:
로그인 → 이미지 빌드 → 태그 → 푸시 → 컨테이너 실행 → 확인 → 정리
이미지 관련 명령어
# <span id="이미지-목록-확인"></span>이미지 목록 확인
docker images
# <span id="이미지-빌드-현재-디렉토리의-dockerfile-사용"></span>이미지 빌드 (현재 디렉토리의 Dockerfile 사용)
docker build -t 이미지이름 .
# <span id="이미지에-태그-달기-docker-hub에-푸시하려면-username-필요"></span>이미지에 태그 달기 (Docker Hub에 푸시하려면 username 필요)
docker tag 이미지이름 username/이미지이름:latest
# <span id="이미지-삭제"></span>이미지 삭제
docker rmi 이미지이름
컨테이너 관련 명령어
# <span id="컨테이너-실행"></span>컨테이너 실행
docker run -d --name 컨테이너이름 -p 호스트포트:컨테이너포트 이미지이름
# <span id="실행-중인-컨테이너-확인"></span>실행 중인 컨테이너 확인
docker ps
# <span id="모든-컨테이너-확인-중지된-것-포함"></span>모든 컨테이너 확인 (중지된 것 포함)
docker ps -a
# <span id="컨테이너-중지"></span>컨테이너 중지
docker stop 컨테이너id
# <span id="컨테이너-삭제-중지-상태여야-함"></span>컨테이너 삭제 (중지 상태여야 함)
docker rm 컨테이너id
# <span id="컨테이너-로그-확인"></span>컨테이너 로그 확인
docker logs 컨테이너id
주의: 컨테이너를 삭제하려면 먼저 중지해야 한다.
Docker Hub 관련 명령어
# <span id="로그인"></span>로그인
docker login -u username
# <span id="이미지-푸시"></span>이미지 푸시
docker push username/이미지이름:latest
# <span id="이미지-풀"></span>이미지 풀
docker pull 이미지이름
Docker Hub 로그인 팁: 소셜 로그인으로 가입한 경우, 웹에서 Docker Hub → Account Setting → Password → reset 해서 비밀번호 설정해야 CLI에서 로그인 가능하다.
docker run 옵션 정리
| 옵션 | 설명 | 예시 |
|---|---|---|
-d |
백그라운드 실행 | docker run -d nginx |
--name |
컨테이너 이름 지정 | --name my-nginx |
-p |
포트 포워딩 (호스트:컨테이너) | -p 8080:80 |
-v |
볼륨 마운트 | -v /host/path:/container/path |
-e |
환경 변수 설정 | -e MY_VAR=value |
--rm |
종료 시 자동 삭제 | docker run --rm nginx |
실습 예제: Nginx 커스텀 이미지 만들기
# <span id="1-작업-디렉토리-생성"></span>1. 작업 디렉토리 생성
mkdir my-nginx-custom && cd my-nginx-custom
# <span id="2-dockerfile-생성"></span>2. Dockerfile 생성
cat <<EOF > Dockerfile
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
EOF
# <span id="3-이미지-빌드"></span>3. 이미지 빌드
docker build -t my-nginx-custom .
# <span id="4-컨테이너-실행"></span>4. 컨테이너 실행
docker run -d --name custom-web -p 8090:80 my-nginx-custom
# <span id="5-확인"></span>5. 확인
curl localhost:8090