기본 포멧

docker run 커맨드의 기본 포멧

이미지 식별자는 필수 - 이미지 ID나 리파지토리(repository):태그(tag)를 사용할 수 있

$ docker run (<옵션>) <이미지 식별자> (<명령어>) (<인자>)

 

-d 옵션

컨테이너를 백그라운드에서 실행

-d 옵션을 사용하면 컨테이너가 detached 모드에서 실행

$ docker run -d python:3.8-alpine python -m http.server
0b920d2f561437418b8fdc0e9bcfdd4c9d634983ded18ba35a4dbae012753a72
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
0e4fe552200f        python:3.8-alpine   "python -m http.serv…"   5 seconds ago       Up 4 secon

 

-it 옵션

컨테이너를 종료하지 않은체로, 터미널의 입력을 계속해서 컨테이너로 전달하기 위해서 사용

$ docker run -it python:3.8-alpine
Python 3.8.2 (default, Mar 24 2020, 02:56:01)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hi!")
Hi!
>>>

 

—name 옵션

--name 옵션을 사용해서 컨테이너에 이름을 부여, 이후 해당 이름으로 컨테이너를 식별

 
$ docker run -d --name my-server python:3.8-alpine python -m http.server
7899108d467cc423e20a3d6cb250070baae01fa541b037707afbbe8d1e9e3000
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
7899108d467c        python:3.8-alpine   "python -m http.serv…"   2 seconds ago       Up 3 second                             my-server
$ docker kill my-server
my-server
$ docker rm my-server
my-server

-e 옵션

Docker 컨테이너의 환경변수를 설정

-e 옵션을 사용하면 Dockerfile의 ENV 설정도 덮어써진다.

$ docker run -e FOO=bar python:3.8-alpine env
PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=92ebed448fb3
FOO=bar
LANG=C.UTF-8
GPG_KEY=E3FF2839C048B25C084DEBE9B26995E310250568
PYTHON_VERSION=3.8.2
PYTHON_PIP_VERSION=20.0.2
PYTHON_GET_PIP_URL=https://github.com/pypa/get-pip/raw/d59197a3c169cef378a22428a3fa99d33e080a5d/get-pip.py
PYTHON_GET_PIP_SHA256=421ac1d44c0cf9730a088e337867d974b91bdce4ea2636099275071878cc189e
HOME=/root

-p 옵션

-p 옵션은 호스트와 컨테이너 간의 포트(port) 배포(publish)/바인드(bind)를 위해서 사용

호스트(host) 컴퓨터에서 컨테이너에서 리스닝하고 있는 포트로 접속할 수 있도록 설정

$ docker run -d -p 80:8000 python:3.8-alpine python -m http.server

-v 옵션

-v 옵션은 호스트와 컨테이너 간의 볼륨(volumn) 설정을 위해서 사용

호스트(host) 컴퓨터의 파일 시스템의 특정 경로를 컨테이너의 파일 시스템의 특정 경로로 마운트(mount)

$ echo Hi > test.txt
$ docker run -v `pwd`:/etc python:3.8-alpine cat /etc/test.txt
Hi

-w 옵션

-w 옵션은 Dockerfile의 WORKDIR 설정을 덮어쓰기 위해서 사용

$ docker run -w /etc python:3.8-alpine pwd
/etc

--entrypoint 옵션

--entrypoint 옵션은 Dockerfile의 ENTRYPOINT 설정을 덮어쓴다.

예를 들어, python:3.8-alpine 이미지로 부터 python --version을 실행하고 싶다면 다음과 같이 커맨드를 실행한다.

$ docker run --entrypoint python python:3.8-alpine --version
Python 3.8.2

—rm 옵션

--rm 옵션은 컨테이너를 일회성으로 실행할 때 사용 - 컨테이너가 종료될 때 컨테이너와 관련된 리소스(파일 시스템, 볼륨)까지 깨끗이 제거함

$ docker run --rm -it wernight/funbox nyancat

 

https://www.daleseo.com/docker-run/

'docker' 카테고리의 다른 글

[nginx] index.html 위치  (0) 2022.11.22

+ Recent posts