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_ENV
에hello
값을 설정하고 출력.
- 환경 변수
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_VAR
에value
설정.
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 |