Docker & Containers

docker run 명령어설정을 확인하고 복사하세요

이미지를 지정하고 필요한 매핑을 추가하면 POSIX 셸용 명령을 미리 볼 수 있습니다.

docker run 명령어

작업 인수

포트

마운트

환경 변수

명령 미리보기

docker run \
  --detach \
  'nginx:alpine'

macOS, Linux 또는 WSL의 POSIX sh용입니다. 경로는 입력 그대로 사용하며 변수와 ~를 확장하지 않습니다.

설정은 이 브라우저에서 처리합니다. Docker 연결, 레지스트리 조회나 명령 실행은 하지 않습니다.

옵션

그룹당 20행. CPU 0.001–1024, 메모리는 정수 b/k/m/g로 최소 6MiB. 빈칸은 미지정입니다.

명령 미리보기가 최신 상태입니다.

여러 안내서에서 가져온 포트와 경로를 하나로 합치다 보면 호스트와 컨테이너의 위치를 바꾸어 적기 쉽습니다. docker run 명령어 구성 폼은 두 쪽을 분리해 보여 주므로 어떤 설정을 새 컨테이너에 전달하는지 확인할 수 있습니다.

처음에는 nginx:alpine과 백그라운드 실행만 설정되어 있습니다. 포트는 공개하지 않고 자원 제한도 추가하지 않습니다. 빈 옵션은 생략하며 이미지의 기본 시작 명령을 유지합니다. 앱에 필요한 비밀번호나 디렉터리를 추측해서 채우지 않습니다.

docker run 명령어 구성을 돕는 이유

구분 기호보다 설정에 집중

docker run 명령어의 포트, 마운트와 환경 변수를 개별 필드로 입력합니다. 경로에 공백이나 작은따옴표가 있어도 하나의 인수로 전달되도록 처리합니다. 입력이 바뀌면 기존 결과를 즉시 오래된 상태로 표시하고 복사를 막아 수정 전 명령을 가져가지 않게 합니다.

이미지, 포트, 마운트 입력 행이 하나의 터미널 명령으로 합쳐지는 모습.

공개 범위와 변수 값을 먼저 검토

특권 모드, 민감한 호스트 경로, 루프백 밖으로 공개하는 포트를 각각 경고합니다. 모든 환경 변수 값은 입력과 미리보기에서 기본적으로 가립니다. 값을 표시해야 실제 명령을 내보낼 수 있으며, 가리기는 화면 표시 기능일 뿐 암호화가 아닙니다.

가려진 환경 변수와 비활성화된 내보내기 옆에 특권 및 호스트 마운트 경고가 표시된 모습.

터미널로 옮기기 전에 정할 세 가지

01

호스트 주소의 의미 확인

새 포트 행은 127.0.0.1과 TCP로 시작합니다. 주소를 지우면 모든 인터페이스에 공개하도록 요청합니다. 컨테이너 포트는 이미지 안의 서비스가 실제로 수신하는 포트여야 하며, 호스트 번호를 바꿔도 내부 서비스의 포트가 바뀌지는 않습니다.

02

경로와 이름 있는 볼륨 구분

Docker가 관리하는 저장소는 volume, 호스트의 특정 경로는 bind를 선택합니다. 새 마운트는 읽기 전용입니다. 쓰기가 필요한 앱은 이를 명시적으로 해제해야 하며, 경로는 웹 브라우저 컴퓨터가 아닌 Docker 호스트 기준으로 확인합니다.

03

여러 항목을 바꿀 때는 수동 모드

자동 생성은 마지막 입력 후 350ms를 기다립니다. 자동을 끄면 생성 버튼이나 Ctrl/Cmd+Enter로 갱신할 수 있습니다. 예제 적용, 초기화와 행 삭제는 미리보기 뒤에 적용하며, 한 번 되돌리면 입력과 결과가 함께 복원됩니다.

생성되는 인수가 담는 설정

포트 매핑을 행마다 명확하게

IPv4 주소, 호스트 포트, 컨테이너 포트와 TCP 또는 UDP를 한 개의 --publish 인수로 만듭니다. 같은 프로토콜과 호스트 포트에서 겹치는 주소 바인딩은 거부합니다. TCP와 UDP가 같은 번호를 쓰는 것은 가능하지만 실제 호스트의 포트 사용 여부는 검사하지 않습니다.

두 가지 볼륨 마운트

바인드 마운트는 호스트 파일이나 디렉터리를 연결하고 이름 있는 볼륨은 Docker가 관리합니다. --mount에 타입과 선택적인 readonly를 명시합니다. 정규화한 컨테이너 대상 경로가 중복되면 오류를 내므로 다른 행이 기존 매핑을 가리는 결과를 만들지 않습니다.

환경 변수의 원문 유지

값의 공백, 등호, 작은따옴표와 달러 기호를 그대로 한 인수에 보존합니다. 빈 값도 KEY=로 표현하며 중복 키는 거부합니다. 호스트 환경을 읽거나 $HOME을 확장하지 않고 명령 치환 구문도 실행하지 않습니다. 셸 따옴표를 사용자가 미리 붙일 필요가 없습니다.

재시작 정책과 자원 제한

컨테이너 이름, 백그라운드, 대화형 터미널, 종료 시 삭제와 CPU·메모리 상한을 조합합니다. --rm과 no 이외의 재시작 정책을 함께 선택하면 생성하지 않습니다. 빈 제한 필드는 인수를 생략하며, 지정한 용량을 호스트에서 미리 예약해 주는 기능은 아닙니다.

지원하는 범위와 제약

POSIX 셸용 단일 컨테이너
Linux, macOS, WSL의 POSIX 셸을 대상으로 하며 마운트는 Linux 경로를 사용합니다. PowerShell, CMD, 기존 명령 가져오기, Compose, Dockerfile, 임의 플래그 및 시작 명령 덮어쓰기는 지원하지 않습니다. Docker 실행이나 레지스트리 조회도 하지 않습니다.
명확한 이미지와 포트 문법
소문자 저장소 경로, 선택적인 DNS 또는 IPv4 레지스트리와 포트, 태그, sha256 다이제스트를 받습니다. IPv6 레지스트리, 단독 이미지 ID와 다른 해시 알고리즘은 제외합니다. 포트는 1–65535의 단일 정수이며 범위, 무작위 포트, IPv6 바인딩과 SCTP는 지원하지 않습니다.
모호한 마운트 경로 거부
bind 원본은 절대 경로, 대상은 루트가 아닌 절대 경로여야 합니다. 쉼표, 큰따옴표, 역슬래시, 제어 문자 및 . 또는 .. 구간은 거부합니다. 공백과 작은따옴표는 유지합니다. 볼륨 이름은 영숫자로 시작하는 2–255자의 영숫자, 점, 밑줄, 하이픈으로 제한합니다.
행 수와 입력 크기 제한
각 그룹은 최대 20행입니다. 텍스트 하나는 4096 UTF-16 단위, 전체 텍스트는 65536단위까지 허용합니다. CPU는 0.001–1024와 소수점 이하 세 자리까지 지원합니다. 메모리는 정수와 선택적인 b/k/m/g로 쓰며 최소 6MiB, 최대 부호 있는 64비트 바이트 수입니다.
가리기와 비밀 저장소는 다름
환경 변수 값이 가려진 결과는 복사하거나 다운로드할 수 없습니다. 표시를 허용하면 내보낸 스크립트에 실제 값이 포함되어 셸 기록이나 컨테이너 검사에서 보일 수 있습니다. 변수 이름과 경로를 자동으로 비밀로 분류하지 않으며 Docker secrets를 대신하지 않습니다.
경고가 호스트를 검사하지는 않음
루트, 시스템, 사용자 디렉터리의 바인드를 경고하지만 심볼릭 링크는 따라가지 않습니다. Docker 소켓은 읽기 전용이어도 검토해야 합니다. 파일 존재, 권한, 이미지 신뢰성이나 커널의 자원 제한 지원 여부는 실제 Docker 호스트에서 확인해야 합니다.

docker run 명령어 관련 질문

docker run -p 8080:80 nginx에서 포트 번호는 무엇을 의미합니까?

왼쪽 8080은 호스트 포트, 오른쪽 80은 컨테이너 내부 포트입니다. 호스트의 8080으로 들어온 연결을 컨테이너의 80에 전달합니다. 이 도구에서는 둘을 별도 필드로 입력하고, 로컬에서만 접근하려면 기본 주소 127.0.0.1을 유지합니다.

공백이 포함된 환경 변수를 Docker에 어떻게 전달하나요?

값 필드에 원문을 입력하세요. 도구가 KEY=value 전체를 하나의 인수로 인용하므로 공백과 등호를 따로 이스케이프할 필요가 없습니다. $HOME도 그대로 전달됩니다. 줄바꿈과 제어 문자는 거부합니다.

Dockerfile에서 --rm과 --restart를 설정할 수 있나요?

두 옵션은 Dockerfile 지시어가 아니라 컨테이너를 시작할 때의 설정입니다. 재시작할 서비스라면 종료 시 삭제를 끄고, --rm이 필요한 임시 컨테이너라면 정책을 no로 선택하세요. 충돌을 발견하면 생성이 중단됩니다.

Docker 볼륨과 바인드 마운트는 어떻게 다른가요?

이름 있는 볼륨은 Docker가 관리하는 저장소이고 바인드 마운트는 호스트의 특정 파일이나 디렉터리에 연결됩니다. 쓰기 가능한 바인드는 호스트 데이터에 영향을 줍니다. --mount의 바인드 원본이 없으면 보통 실행 오류가 나며 이 페이지는 존재 여부를 검사할 수 없습니다.

docker-compose YAML도 생성할 수 있나요?

지원하지 않습니다. 이 페이지는 이미지의 기본 시작 동작을 사용하는 단일 docker run 명령을 생성합니다. 여러 서비스와 의존성, 네트워크를 표현하는 Compose는 별도 구성 모델이 필요합니다. 생성한 셸 명령을 YAML 서비스 설정으로 취급하면 안 됩니다.

미리보기가 Docker 문서와 다른가요?

검토한 명령을 터미널로 가져가세요

docker run 명령어 구성을 마쳤다면 오류와 경고를 확인하고 대상 호스트의 조건에 맞는지 살펴본 뒤 내보내세요.