Product/Docker

[Docker] docker run 사용법

Codit Develop 2022. 2. 22. 17:06
반응형

Docker Run

기본 실행 명령어

일반 실행

# docker run [Options] [Image[:version]] [Command]
docker run centos:centos8

입력 모드 실행

Container 생성 후 bash/sh로 바로 접속

  • exit 입력 시 Container 밖으로 빠져나올 수 있음. (Container는 종료됨)
docker run -it centos:centos8

Background에서 실행

Container 생성 후 Background에서 실행

  • 해당 Image의 EntryPoint / CMD 에 설정된 실행 Command가 종료될 때 까지 Container 유지
  • Command 종료 시 Container Stop
docker run -d centos:centos8

추가 Options

Name

Container에 명칭 부여

  • --name [CONTAINER NAME]
# docker run -d --name [CONTAINER NAME] centos:centos8
docker run -d --name testcon centos:centos8

Port

host의 특정 port로 들어온 요청을 특정 Container에 변경된 포트로 전달

  • -p [HOST PORT]:[CONTAINER PORT]
  • --port [HOST PORT]:[CONTAINER PORT]
# host:80 -> container:8080
# docker run -d -p "[HOST PORT]:[CONTAINER PORT]" centos:centos8
docker run -d -p "80:8080" centos:centos8

Environment (ENV)

Container에 설정된 환경변수 제어

  • -e [ENV KEY]=[ENV VALUE]
# ENV OS_PASSWORD = qwer1234
# docker run -d -e [ENV KEY]=[ENV VALUE] centos:centos8
docker run -d -e OS_PASSWORD=qwer1234 centos:centos8

Volume

Host의 특정 경로를 Container의 특정 경로로 마운트

  • 경로-경로 연결 방식 (Bind Mount)
    • -v [HOST PATH]:[CONTAINER PATH]
  • Volume Object-경로 연결 방식 (Volume Mount)
    • docker volume create 명령어로 만들어진 volume을 이용한 연결 방식
    • -v [VOLUME OBJECT]:[CONTAINER PATH]
# Bind Mount

# Host /var/docker-volume -> Container /var/data
# docker run -d -v [HOST PATH]:[CONTAINER PATH] centos:centos8
docker run -d -v /var/docker-volume/data:/var/data centos:centos8


# Volume Mount

# Docker volume test-volume -> Container /var/data
# docker run -d -v [DOCKER VOLUME NAME]:[CONTAINER PATH] centos:centos8
docker run -d -v test-volume:/var/data centos:centos8

Work Directory

Container 초기 시작 시 실행되는 경로 지정

  • Dockerfile에 선언된 WORKDIR 속성을 덮어씀
  • -w [Work Directory Path]
# docker run -it -w [WORK DIRECTORY PATH] centos:centos8
docker run -it -w /var centos:centos8

Entry Point

Container 실행 Command 지정

  • Dockerfile에 선언된 ENTRYPOINT 속성 변경
  • Container 실행 시 설정한 EntryPoint Command가 실행됨.
  • --entrypoint [Command]
# Container 실행 시 mysql -u root -p qwer1234 명령 실행
# docker run --entrypoint [COMMAND] centos:centos8 [ARGUMENT]
docker run --entrypoint mysql centos:centos8 -u root -p qwer1234

After Remove

Container 종료 시 해당 컨테이너 삭제

  • --rm
docker run -d --rm centos:centos8
반응형