docker run -d ubuntu sleep 5
2. --entrypoint (Entry Point): 도커파일에 정의된 entrypoint를 오버라이드해줌.
docker run --entrypoint echo ubuntu hello
3. --env or -e (Environment Variables): 환경변수를 runtime 시간에 설정해줌
docker run --env MY_ENV=hello ubuntu printenv
4. --init (Initialization):
Docker의 초기화 스크립트를 실행하고 프로세스를 하위 프로세스로 생성.
docker run --init ubuntu ps
5. -i (Interactive) and -t (TTY): 대화형 TTY session을 컨테이너안에서 가진다.
docker run -it ubuntu
6. --mount and --volume (Volume): 볼륨의 컨테이너 계층 외부에 데이터를 유지합니다.
docker run \
-e POSTGRES_PASSWORD=foobarbaz \
--volume pgdata:/var/lib/postgresql/data \
postgres:15.1-alpine
7. --name (Name): 컨테이너에게 특정한 이름을 부여.
docker run -d --name my_container ubuntu sleep 99
8.--network or --net (Network): 특정한 docker 네트워크에 연결.
docker run --network my_network ubuntu
9. --platform (Platform): 컨테이너 이미지를 실행할 아키텍처를 지정.
docker run --platform linux/arm64/v8 ubuntu dpkg --print-architecture
10. --publish or -p (Publish): 호스트 시스템의 포트를 컨테이너의 포트에 연결.
docker run -p 3000:3000 api-node
11. --restart (Restart): 지정된 정책(항상, 중지되지 않는 한 또는 전혀)에 따라 컨테이너를 다시 시작.
docker run --restart unless-stopped ubuntu
--rm (Remove): 프로세스가 종료되면 컨테이너를 제거.docker run --name this_one_will_remain ubuntu
docker run --rm --name this_one_will_be_gone ubuntu
# grepping for these containers shows that the --rm one is gone
docker image ls -a | grep this_one_will
--cap-add and --cap-drop: 컨테이너에서 액세스할 수 있는 Linux 기능을 지정.
--cgroup-parent: 컨테이너가 연결되어야 하는 cgroup ID를 지정.
--cpu-shares: 컨테이너가 액세스해야 하는 CPU 주기의 비율을 지정.
--cpuset: 컨테이너가 실행되어야 하는 CPU 코어를 지정.
--device-read-bps and --device-write-bps:컨테이너가 액세스할 수 있는 장치 처리량과 대역폭을 제어.
--gpus: 컨테이너 내의 GPU에 액세스.
--health-* (e.g. --health-cmd, --health-interval, etc...): Docker가 주기적으로 컨테이너를 ping하도록 상태 확인 지정.
--memory: 컨테이너 프로세스가 액세스해야 하는 메모리 양 지정.
--pids-limit: 컨테이너가 관리하도록 허용해야 하는 하위 프로세스 수를 지정.
--privileged: 모든 권한에 대한 컨테이너 액세스 권한 부여.
--read-only: 파일의 컨테이너 레이어 설정