본문 바로가기
Docker

자주 사용하는 Docker 명령어

by xogns93 2024. 12. 3.

Docker에서 자주 사용되는 명령어 옵션인 -p-v는 컨테이너와 호스트 시스템 간의 네트워크 포트 매핑볼륨 마운트를 설정하는 데 사용됩니다. 여기에서 Docker의 주요 옵션과 그 뜻을 정리했습니다.


1. 자주 사용하는 Docker 명령어 옵션

1.1 -p (포트 매핑)

  • 컨테이너의 내부 포트를 호스트 시스템의 외부 포트에 연결합니다.
  • 형식: -p <호스트 포트>:<컨테이너 포트>
  • 예:
    docker run -p 8080:80 nginx
    • 호스트의 8080 포트를 컨테이너의 80 포트에 연결.
    • 웹 브라우저에서 http://localhost:8080으로 Nginx 컨테이너에 접속 가능.

1.2 -v (볼륨 마운트)

  • 호스트와 컨테이너 간의 디렉토리 또는 파일을 공유.
  • 형식: -v <호스트 디렉토리>:<컨테이너 디렉토리>
  • 예:
    docker run -v /host/data:/container/data nginx
    • 호스트의 /host/data 디렉토리를 컨테이너의 /container/data 디렉토리와 공유.

1.3 -d (백그라운드 실행)

  • 컨테이너를 백그라운드에서 실행.
  • 예:
    docker run -d nginx
    • Nginx 컨테이너가 백그라운드에서 실행.

1.4 --name (컨테이너 이름 지정)

  • 컨테이너 실행 시 이름을 지정.
  • 예:
    docker run --name my_nginx nginx
    • 컨테이너 이름이 my_nginx로 설정.

1.5 -it (상호작용 모드 + 터미널)

  • 컨테이너에 접속할 수 있도록 터미널을 활성화하고 입출력 모드로 실행.
  • 예:
    docker run -it ubuntu /bin/bash
    • Ubuntu 컨테이너를 실행하며, Bash 셸로 진입.

1.6 --rm (자동 삭제)

  • 컨테이너가 종료되면 자동으로 삭제.
  • 예:
    docker run --rm ubuntu echo "Hello"
    • 실행 완료 후 컨테이너가 삭제.

1.7 --env 또는 -e (환경 변수 설정)

  • 컨테이너 내부에서 사용할 환경 변수를 설정.
  • 형식: --env <키>=<값> 또는 -e <키>=<값>
  • 예:
    docker run -e MY_ENV=hello ubuntu printenv MY_ENV
    • 환경 변수 MY_ENVhello 값을 설정하고 출력.

1.8 --network (네트워크 설정)

  • 컨테이너를 특정 Docker 네트워크에 연결.
  • 예:
    docker network create my_network
    docker run --network my_network nginx
    • my_network라는 사용자 정의 네트워크에서 Nginx 실행.

1.9 --restart (자동 재시작 정책 설정)

  • 컨테이너 종료 시 자동 재시작 정책을 설정.
  • 옵션:
    • no: 자동 재시작 안 함 (기본값).
    • always: 항상 재시작.
    • on-failure: 오류 시에만 재시작.
  • 예:
    docker run --restart always nginx
    • Nginx 컨테이너가 항상 재시작.

1.10 -P (랜덤 포트 매핑)

  • 컨테이너의 노출된 모든 포트를 호스트의 랜덤 포트에 매핑.
  • 예:
    docker run -P nginx
    • Nginx 컨테이너의 모든 노출된 포트가 호스트의 랜덤 포트로 매핑.

1.11 --privileged (특권 모드)

  • 컨테이너에 호스트와 유사한 수준의 권한을 부여.
  • 예:
    docker run --privileged ubuntu

2. 종합 명령어 예시

2.1 웹 서버 실행

docker run -d -p 8080:80 --name my_nginx nginx
  • Nginx를 백그라운드에서 실행.
  • 호스트의 8080 포트를 컨테이너의 80 포트에 연결.
  • 컨테이너 이름: my_nginx.

2.2 파일 공유와 환경 변수 설정

docker run -v /host/data:/container/data -e ENV_VAR=value ubuntu
  • 호스트의 /host/data 디렉토리를 컨테이너의 /container/data 디렉토리에 연결.
  • 환경 변수 ENV_VARvalue 설정.

3. 자주 쓰는 명령어 옵션 정리

옵션 사용 예시
-p 포트 매핑 -p 8080:80
-v 볼륨 마운트 -v /host/data:/container/data
-d 백그라운드 실행 -d
--name 컨테이너 이름 지정 --name my_container
-it 상호작용 모드 + 터미널 활성화 -it ubuntu /bin/bash
--rm 컨테이너 종료 시 자동 삭제 --rm
-e 환경 변수 설정 -e ENV_VAR=value
--network 네트워크 설정 --network my_network
--restart 자동 재시작 정책 설정 --restart always
-P 노출된 모든 포트를 랜덤 포트로 매핑 -P
--privileged 컨테이너에 특권 권한 부여 --privileged

이 옵션들을 잘 이해하면 Docker 컨테이너를 더욱 유연하게 제어할 수 있습니다! 😊

'Docker' 카테고리의 다른 글

Surface Area  (1) 2024.12.04
Makefile  (0) 2024.12.03
[/tmp] 리눅스의 템프 디렉토리(Temporary Directory)  (0) 2024.12.03
리눅스 시그널  (0) 2024.12.03
Dockerfile  (0) 2024.12.03