반응형
docker install
https://24hours-beginner.tistory.com/461
docker run의 기본 구조
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
주요 옵션과 사용 예시
1. -d, --detach
- 사용했을 때: 컨테이너가 백그라운드에서 실행됩니다. 예: docker run -d nginx
- 사용하지 않았을 때: 컨테이너가 포그라운드에서 실행되며, 컨테이너의 로그 출력을 터미널에서 볼 수 있습니다.
2. --name
- 사용했을 때: 컨테이너에 사용자 정의 이름을 지정합니다. 예: docker run --name my_nginx nginx
- 사용하지 않았을 때: Docker가 임의의 이름을 생성하여 할당합니다.
3. -p, --publish
- 사용했을 때: 호스트의 포트를 컨테이너의 포트에 매핑합니다. 예: docker run -p 80:80 nginx
- 사용하지 않았을 때: 컨테이너는 외부 네트워크와 연결되지 않습니다.
4. -v, --volume
- 사용했을 때: 지정된 볼륨이나 디렉토리가 컨테이너에 마운트됩니다. 예: docker run -v /host/data:/container/data nginx
- 사용하지 않았을 때: 컨테이너는 호스트의 파일 시스템과 공유하지 않습니다.
5. --rm
- 사용했을 때: 컨테이너가 종료되면 자동으로 삭제됩니다. 예: docker run --rm nginx
- 사용하지 않았을 때: 컨테이너가 종료된 후에도 파일 시스템에 남아있습니다.
6. -e, --env
- 사용했을 때: 컨테이너에 환경 변수를 설정합니다. 예: docker run -e "ENV_VAR_NAME=value" nginx
- 사용하지 않았을 때: 기본 환경 변수 설정이 사용됩니다.
7. --entrypoint
- 사용했을 때: 컨테이너의 기본 엔트리포인트를 오버라이드합니다. 예: docker run --entrypoint /custom/script.sh nginx
- 사용하지 않았을 때: 이미지에 정의된 기본 엔트리포인트가 사용됩니다.
8. -i, --interactive
- 사용했을 때: 컨테이너의 표준 입력을 열어둡니다. 예: docker run -i nginx
- 사용하지 않았을 때: 표준 입력이 연결되지 않습니다.
9. -t, --tty
- 사용했을 때: 가상 터미널이 할당됩니다. 예: docker run -t nginx
- 사용하지 않았을 때: 터미널이 할당되지 않아 대화형 세션이 불가능합니다.
고급 옵션과 사용법
--memory
- 설명: 컨테이너의 메모리 사용량을 제한합니다.
- 예시: docker run --memory=1g nginx는 컨테이너의 메모리 사용량을 최대 1GB로 제한합니다.
--cpus
- 설명: 컨테이너가 사용할 수 있는 CPU 코어의 수를 제한합니다.
- 예시: docker run --cpus=0.5 nginx는 컨테이너가 사용할 수 있는 CPU 자원을 반 코어로 제한합니다.
--network
- 설명: 컨테이너가 연결될 네트워크를 지정합니다.
- 예시: docker run --network=host nginx는 호스트의 네트워크를 컨테이너와 공유하도록 설정합니다.
--hostname 옵션
- --hostname: 컨테이너 내에서 사용할 호스트 이름을 지정합니다.
- 예시: docker run --hostname=mycontainer nginx 명령어는 컨테이너의 호스트 이름을 mycontainer로 설정합니다.
--network 옵션
- --network: 컨테이너가 연결될 네트워크 타입을 지정합니다.
- 옵션 중 host: --network=host를 사용하면 컨테이너가 호스트의 네트워크 네임스페이스를 사용하게 됩니다. 즉, 컨테이너가 호스트의 IP 주소와 포트를 그대로 사용하게 됩니다.
- 예시: docker run --network=host nginx 명령어는 컨테이너가 호스트의 네트워크 설정을 그대로 사용하도록 합니다.
-p 옵션과 --network=host의 차이점
-p, --publish 옵션
- 설명: 호스트의 특정 포트를 컨테이너의 특정 포트에 매핑합니다. 이를 통해 외부에서 컨테이너로 네트워크 트래픽을 전송할 수 있습니다.
- 예시: docker run -p 80:80 nginx 명령어는 호스트의 80번 포트를 컨테이너의 80번 포트에 매핑합니다.
--network=host
- 설명: 이 옵션을 사용하면, 컨테이너는 호스트의 네트워크 네임스페이스를 공유하며, 호스트의 IP 주소와 모든 포트를 직접 사용합니다. 이 경우, -p 옵션은 필요 없습니다.
- 차이점: --network=host는 컨테이너와 호스트 간의 격리를 줄이며, 네트워크 성능을 최적화할 수 있지만, 보안상의 위험을 증가시킬 수 있습니다. -p 옵션은 네트워크 격리를 유지하면서 특정 포트만 공유하는 보다 안전한 방법입니다.
반응형
'프로젝트 설정 > Docker' 카테고리의 다른 글
[Docker] crontab Error? 실행안됨 (feat. ubuntu) (0) | 2024.01.17 |
---|---|
[Docker] Docker installation on Ubuntu 20.04 (0) | 2023.04.21 |
[Docker] Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (feat. ubuntu) (0) | 2023.03.03 |
[Docker] MariaDB install 1 (feat. running container) (0) | 2023.02.21 |
[Docker] 포트 설정 (0) | 2023.02.03 |