네로개발일기

개발자 네로의 개발 일기, 자바를 좋아합니다 !

반응형

🐳 docker run 명령어 사용법

Docker를 실행하기 위해 docker run 명령어를 자주 사용하게 된다.

⛵️ 기본 포맷

docker run 명령어의 기본 포맷은 다음과 같다. 여기서 이미지 식별자는 필수이다.

$ docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARGS...]
$ docker run [옵션] IMAGE [명령어] [인자]

⛵️ -d 옵션

컨테이너를 백그라운드에서 실행하고 싶을 때 쓰는 명령어이다. -d 옵션을 사용하면 컨테이너가 detached 모드에서 실행된다.
아래는 python:3.8-alpine 이미지로 python -m http.server 명령어를 백그라운드로 실행시킨 명령어이다.

$ docker run -d python:3.8-alpine python -m http:server

⛵️ -it 옵션

-i 옵션과 -t 옵션은 같이 쓰는 경우가 흔하다. 컨테이너를 종료하지 않은 채 터미널에서 입력을 계속해서 컨테이너로 전달하기 위해 이 두 옵션을 사용한다. -it 옵션은 컨테이너의 쉘(shell)이나 CLI 도구로 사용할때 유용하게 사용된다.

$ 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!
>>>
=======================================================================
$ docker run -it mysql:5.7
# ls
bin		home	lib		tmp
dev		etc		usr		var

⛵️ --name 옵션

docker 컨테이너를 제어할 때 컨테이너 ID를 사용하기엔 불편하게 느껴질 수 있다. 이런 경우, --name 옵션을 사용해서 컨테이너에 이름을 부여해 해당 이름으로 컨테이너를 식별할 수 있다.
아래는 my-server라는 이름의 컨테이너를 실행하고 docker kill 커맨드로 해당 컨테이너를 종료하거나 docker run 명령어로 해당 컨테이너를 삭제할 때 컨테이너 ID 대신에 이름을 사용하는 것을 보여주는 예시다.

$ 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 옵션을 사용한다. -e 옵션을 사용하면 Dockerfile의 ENV 설정도 덮어써지게 된다.
아래는 FOO 환경변수를 bar로 세팅하고 환경변수를 출력하는 명령어이다.

$ 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) 컴퓨터에서 컨테이너에서 리스닝하고 있는 포트로 접속할 수 있도록 설정해준다.
아래는 컨테이너 내부에서 3306 포트로 리스닝하고있고 호스트 컴퓨터에서 3306 포트로 접속할 수 있도록 하는 명령어이다.

$ docker run -d --name mysql5.7_lower_case -p 3306:3306 mysql:5.7

⛵️ --rm 옵션

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

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


[참고]
=> Docker CLI 레퍼런스
https://docs.docker.com/engine/reference/run/

Docker run reference

docs.docker.com

=> MySQL 5.7 도커로 설치하기
https://frogand.tistory.com/89
=> 출처
https://www.daleseo.com/docker-run/

docker run 커맨드 사용법

Engineering Blog by Dale Seo

www.daleseo.com

728x90
반응형

'programming language > Docker' 카테고리의 다른 글

[Docker] MySQL 5.7 컨테이너 설치 명령어  (0) 2021.11.29
blog image

Written by ner.o

개발자 네로의 개발 일기, 자바를 좋아합니다 !