SERVICES/Docker

docker options

axelrod입니다 2024. 12. 2. 18:46

1. -i, -t, -d 옵션

-i (interactive)

  • 설명: 컨테이너의 표준 입력(STDIN)을 유지합니다.
  • 사용 상황: 컨테이너 내에서 상호작용이 필요한 경우에 사용합니다. 예를 들어, 컨테이너 내부에서 쉘을 실행하거나, 실행 중인 프로세스와 상호작용해야 할 때 사용합니다.
  • 예시:
    docker run -i ubuntu /bin/bash
    이 명령어는 Ubuntu 컨테이너를 실행하고, 표준 입력을 유지하여 사용자가 명령어를 입력할 수 있게 합니다.

-t (tty)

  • 설명: 가상 터미널(TTY)을 할당합니다.
  • 사용 상황: -i 옵션과 함께 사용하여 터미널 환경을 제공합니다. 이는 사용자가 컨테이너와 상호작용할 때 더 나은 사용자 경험을 제공합니다.
  • 예시:
    docker run -it ubuntu /bin/bash
    이 명령어는 Ubuntu 컨테이너를 실행하고, 사용자가 컨테이너 내에서 터미널을 사용할 수 있게 합니다.

-d (detach)

  • 설명: 컨테이너를 백그라운드에서 실행합니다.
  • 사용 상황: 컨테이너를 백그라운드에서 실행하고 싶을 때 사용합니다. 이는 서버 애플리케이션을 실행할 때 유용합니다. 예를 들어, 웹 서버나 데이터베이스 서버를 백그라운드에서 실행하고 싶을 때 사용합니다.
  • 예시:
    docker run -d nginx
    이 명령어는 Nginx 웹 서버를 백그라운드에서 실행합니다.

조합 사용 (-itd)

  • 설명: 위의 옵션들을 조합하여 컨테이너를 실행합니다.
  • 사용 상황: 컨테이너를 백그라운드에서 실행하면서, 필요시 상호작용이 가능하게 하고 싶을 때 사용합니다.
  • 예시:
    docker run -itd ubuntu /bin/bash
    이 명령어는 Ubuntu 컨테이너를 백그라운드에서 실행하고, 상호작용이 필요할 때 터미널을 통해 접속할 수 있게 합니다.

2. -p 옵션

-p (publish)

  • 설명: 호스트와 컨테이너 간의 포트를 매핑합니다.
  • 사용 상황: 호스트 시스템에서 컨테이너 내부의 네트워크 서비스에 접근할 수 있게 하고 싶을 때 사용합니다. 예를 들어, 웹 서버나 데이터베이스 서버를 외부에서 접근할 수 있도록 설정할 때 사용합니다.
  • 예시:
    docker run -d -p 8080:80 nginx
    이 명령어는 Nginx 웹 서버를 백그라운드에서 실행하고, 호스트의 8080 포트를 컨테이너의 80 포트에 매핑합니다.

3. --name 옵션

--name

  • 설명: 컨테이너에 이름을 지정합니다.
  • 사용 상황: 컨테이너에 접근하거나 관리할 때 더 쉽게 식별할 수 있도록 이름을 지정할 때 사용합니다.
  • 예시:
    docker run -d --name mynginx nginx
    이 명령어는 Nginx 웹 서버를 백그라운드에서 실행하고, 컨테이너 이름을 mynginx로 지정합니다.

4. -v 옵션

-v (volume)

  • 설명: 호스트와 컨테이너 간의 디렉토리를 공유합니다.
  • 사용 상황: 호스트의 데이터를 컨테이너와 공유하거나, 컨테이너의 데이터를 호스트에 저장하고 싶을 때 사용합니다.
  • 예시:
    docker run -d -v /host/data:/container/data nginx
    이 명령어는 Nginx 웹 서버를 백그라운드에서 실행하고, 호스트의 /host/data 디렉터리를 컨테이너의 /container/data 디렉터리에 매핑합니다.

5. --rm 옵션

--rm

  • 설명: 컨테이너가 종료되면 자동으로 삭제합니다.
  • 사용 상황: 일회성 작업을 위해 컨테이너를 실행할 때 사용합니다. 컨테이너가 종료된 후 자동으로 삭제되므로, 불필요한 컨테이너가 남지 않습니다.
  • 예시:
    docker run --rm ubuntu /bin/echo "Hello, world!"
    이 명령어는 Ubuntu 컨테이너를 실행하여 "Hello, world!"를 출력하고, 작업이 완료되면 컨테이너를 자동으로 삭제합니다.

물론입니다. Docker 컨테이너를 실행할 때 자주 사용되는 옵션들에 대해 더 많은 정보를 제공하겠습니다.

6. --env 옵션

--env (또는 -e)

  • 설명: 컨테이너 내에서 환경 변수를 설정합니다.
  • 사용 상황: 컨테이너에서 실행되는 애플리케이션에 필요한 환경 변수를 설정할 때 사용합니다.
  • 예시:
    docker run -d -e MYSQL_ROOT_PASSWORD=root mysql
    이 명령어는 MySQL 컨테이너를 실행하고, MYSQL_ROOT_PASSWORD 환경 변수를 root로 설정합니다.

7. --volume 옵션

--volume (또는 -v)

  • 설명: 호스트와 컨테이너 간의 디렉토리를 공유합니다.
  • 사용 상황: 호스트의 데이터를 컨테이너와 공유하거나, 컨테이너의 데이터를 호스트에 저장하고 싶을 때 사용합니다.
  • 예시:
    docker run -d -v /host/data:/container/data nginx
    이 명령어는 Nginx 웹 서버를 백그라운드에서 실행하고, 호스트의 /host/data 디렉터리를 컨테이너의 /container/data 디렉터리에 매핑합니다.

8. --network 옵션

--network

  • 설명: 컨테이너가 연결될 네트워크를 지정합니다.
  • 사용 상황: 여러 컨테이너가 동일한 네트워크 내에서 통신하도록 설정할 때 사용합니다.
  • 예시:
    docker run -d --network mynetwork nginx
    이 명령어는 Nginx 컨테이너를 실행하고, mynetwork 네트워크에 연결합니다.

9. --restart 옵션

--restart

  • 설명: 컨테이너가 중지되었을 때 자동으로 재시작하도록 설정합니다.
  • 사용 상황: 중요한 애플리케이션이 항상 실행되도록 보장하고 싶을 때 사용합니다.
  • 예시:
    docker run -d --restart unless-stopped nginx
    이 명령어는 Nginx 컨테이너를 실행하고, 컨테이너가 중지되었을 때 재시작합니다. 수동으로 중지한 경우에는 재시작하지 않습니다.

10. --link 옵션

--link

  • 설명: 다른 컨테이너와 연결을 설정합니다.
  • 사용 상황: 한 컨테이너가 다른 컨테이너에 접근할 수 있도록 설정할 때 사용합니다. 주로 구버전의 Docker에서 사용되었으며, 현재는 --network를 사용하는 것이 권장됩니다.
  • 예시:
    docker run -d --name web --link db:db nginx
    이 명령어는 Nginx 컨테이너를 실행하고, db라는 이름의 컨테이너와 연결을 설정하여 db 호스트명을 통해 접근할 수 있도록 합니다.

11. --cpus 옵션

--cpus

  • 설명: 컨테이너가 사용할 CPU 수를 제한합니다.
  • 사용 상황: 특정 컨테이너가 사용할 수 있는 CPU 자원을 제한하고 싶을 때 사용합니다.
  • 예시:
    docker run -d --cpus="1.5" nginx
    이 명령어는 Nginx 컨테이너를 실행하고, 컨테이너가 최대 1.5개의 CPU를 사용할 수 있도록 제한합니다.

12. --memory 옵션

--memory (또는 -m)

  • 설명: 컨테이너가 사용할 메모리 양을 제한합니다.
  • 사용 상황: 특정 컨테이너가 사용할 수 있는 메모리 자원을 제한하고 싶을 때 사용합니다.
  • 예시:
    docker run -d -m 512m nginx
    이 명령어는 Nginx 컨테이너를 실행하고, 컨테이너가 최대 512MB의 메모리를 사용할 수 있도록 제한합니다.

13. --detach-keys 옵션

--detach-keys

  • 설명: 컨테이너를 분리하는 데 사용할 키 시퀀스를 지정합니다.
  • 사용 상황: 컨테이너를 분리하는 키 조합을 사용자 정의하고 싶을 때 사용합니다.
  • 예시:
    docker run -it --detach-keys="ctrl-x" ubuntu /bin/bash
    이 명령어는 Ubuntu 컨테이너를 실행하고, Ctrl+x 키 조합을 사용하여 컨테이너를 분리할 수 있도록 설정합니다.

14. --user 옵션

--user (또는 -u)

  • 설명: 컨테이너 내에서 사용할 사용자 ID를 지정합니다.
  • 사용 상황: 특정 사용자 권한으로 컨테이너를 실행하고 싶을 때 사용합니다.
  • 예시:
    docker run -d -u 1000:1000 ubuntu
    이 명령어는 Ubuntu 컨테이너를 사용자 ID 1000과 그룹 ID 1000으로 실행합니다.

이와 같은 다양한 Docker 옵션들을 이해하고 적절하게 사용하는 것이 중요합니다. 각 옵션은 특정 상황에서 유용하게 사용할 수 있으며, 이를 통해 Docker 컨테이너를 보다 효율적으로 관리하고 활용할 수 있습니다.