1. 도커 명령어

Shy·2024년 12월 12일

Docker-java

목록 보기
1/1

1. 목록

# 현재 실행 중인 Docker 컨테이너 목록을 출력
docker container ls

# 모든 Docker 컨테이너(중지된 컨테이너 포함)를 출력
docker container ls -a

# 실행 중인 Dockeer 컨테이너의 ID만 출력
docker container ls -q

# 특정 조건에 맞는 컨테이너만 필터링하여 출력
docker container ls --filter
# (예: 상태가 중지된 컨테이너)
docker container ls --filter "status=exited"
docker container ls

CONTAINER ID   IMAGE                                           COMMAND             CREATED          STATUS          PORTS      NAMES
2b3db4c2136d   virtualpairprogrammers/fleetman-webapp:latest   "catalina.sh run"   43 seconds ago   Up 42 seconds   8080/tcp   keen_chatterjee

2. 도커 중지

Docker에서는 컨테이너 ID의 일부만 입력해도 해당 ID가 유일하게 식별될 수 있다면 명령이 정상적으로 작동한다. 이를 ID의 앞부분으로 컨테이너를 참조한다고 한다.

Docker는 컨테이너 ID를 기반으로 작업을 수행하며, 사용자가 입력한 ID의 앞부분이 전체 ID와 충돌하지 않는 경우, 이를 자동으로 매칭한다.

docker container ls
CONTAINER ID   IMAGE                                           COMMAND             CREATED         STATUS         PORTS      NAMES
2b3db4c2136d   virtualpairprogrammers/fleetman-webapp:latest   "catalina.sh run"   8 minutes ago   Up 8 minutes   8080/tcp   keen_chatterjee

# 컨테이너 ID를 전체를 입력하지 않고, 일부분만 입력해도 된다.
docker container stop 2b3
2b3

docker container ls      
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

3. 컨테이너 실행

docker container run -p 8080:8080 virtualpairprogrammers/fleetman-webapp
  • docker container run
    • 새로운 컨테이너를 생성하고 실행한다.
    • 이미지를 기반으로 컨테이너를 만든다.
    • 필요하다면 Docker Hub(공식 이미지 저장소)에서 이미지를 자동으로 다운로드 한다.
  • -p 8080:8080
    • 호스트 머신(로컬 컴퓨터)와 컨테이너 간의 포트를 연결(포트 매핑)한다.
    • 형식: 호스트포트:컨테이너포트
      • 왼쪽 8080: 호스트 머신의 포트
      • 오른쪽 8080: 컨테이너 내부에서 사용되는 포트
    • 이 예에서는, 호스트 머신의 8080포트로 들어오는 여청이 컨테이너의 8080포트로 전달된다.
    • 웹 애플리케이션(예: HTTP 서버)을 실행할 때 외부에서 접근 가능하도록 설정할 때 사용된다.
  • `virtualpairprogrammers/fleetman-webapp``
    • 컨테이너를 실행하기 위해 사용할 이미지 이름이다.
      • virtualpairprogrammers: 이미지가 저장된 Docker Hub 계정/저장소 이름
      • fleetman-webapp: 실제 애플리케이션 이미지 이름
    • :latest: 태그가 생략된 경우, 기본적으로 latest태그의 이미지를 사용한다.

포트번호 입력 없이 실행

docker container run -p 80:8080 virtualpairprogrammers/fleetman-webapp

호스트 머신의 포트 80으로 연결하여, 외부에서 접근 가능하게 만ㄴ든다.

호스트 머신의 브라우저에서 https://localhost 또는 http://127.0.0.1로 접속 가능(:80은 생략 가능)

포트 80이 생략 가능한 이유는 HTTP 프로토콜의 기본 포트이기 때문이다. 웹 브라우저와 같은 클라이언트는 HTTP요청을 보낼 때 포트를 명시하지 않으면, 기본적으로 80번 포트를 사용하도록 설계되어 있다.

  • HTTP 기본 포트: 80번
  • HTTPS 기본 포트: 443번

기본 포트를 사용할 경우, URL에서 포트를 명시하지 않아도 브라우저가 자동으로 해당 포트를 사용한다.

  • http://localhost → 브라우저는 내부적으로 http://localhost:80으로 요청을 보냄.
  • https://example.com → 브라우저는 내부적으로 https://example.com:443으로 요청을 보냄.

추가 옵션

  1. --name: 컨테이너에 이름을 지정
docker container run -p 8080:8080 --name fleetman virtualpairprogrammers/fleetman-webapp
  1. -d: 컨테이너를 백그라운드에서 실행(Detached mode)
docker container run -d -p 8080:8080 virtualpairprogrammers/fleetman-webapp
  1. --rm: 컨테이너 종료 시 자동으로 삭제
docker container run --rm -p 8080:8080 virtualpairprogrammers/fleetman-webapp
profile
신입사원...

0개의 댓글