docker를 사용한다면 알 수밖에 없는 명령어는 docker run 명령어일 것이다. 많은 옵션들이 있지만 주요 옵션만 다뤄보도록 하겠다.
docker run
docker run 기본 포맷에서 이미지는 필수이고 이미지 ID나 repository:tag를 사용할 수 있다
$ docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-t , -i옵션
-t는 tty(가상 터미널)을 할당.
리눅스에 키보드를 통해 표준 입력(stdin)을 전달할 수 있게 한다. (주로 -it 함께 사용)
-i는 컨테이너의 표준 입력(stdin)을 활성화. (주로 -it 함께 사용)
-i 옵션과 -t 옵션을 같이 쓰는 경우입니다. docker 컨테이너에 표준 입력(stdin)을 열어두고(-i), 가상 터미널을 열어(-t) 키보드의 입력을 표준 입력으로 전달할 수 있도록 하는 옵션이다.
$ docker run -it ubuntu
위명령어를 실행을 한다면 nginx 컨테이너를 생성하고, 가상 터미널을 열어 표준 입력을 받게 한다. 그래서 우분투 컨테이너 터미널이 실행이 된다.
-d 옵션
컨테이너를 백그라운드로 실행한다.
-d 옵션을 주지 않는다면 컨테이너를 실행 중이라 다른 컨테이너를 사용할 수가 없다 (ctrl + p +q 방법이 있긴 하다)
위의 터미널처럼 컨테이너가 백그라운드에서 실행되는걸 알 수 있다
--rm 옵션
docker run 명령어가 끝나면, 컨테이너 자동 삭제.
$ docker run -ti --rm ubuntu
위의 코드를 실행하고 exit를 하고 docker ps를 한다면 docker rm -f 명령어를 쓰지 않아도 컨테이너가 삭제된 걸 알 수 있다.
--name 옵션
컨테이너의 이름을 지정할때 사용.
$ docker run -ti -d --name my-ubuntu ubuntu
위의 코드를 실행하고 docker ps를 입력한다면 NAMES 부분에 my-ubuntu로 이름이 지정된 걸 확인할 수 있다.
-p 옵션
호스트:컨테이너 간 포트 바인딩.
$ docker run -ti -d -p 8080:8080 ubuntu
위의 명령어를 입력한다면 아래와같이 포트 바인딩이 된 걸 확인할 수 있다.
-v 옵션
호스트:컨테이너 간 볼륨 바인딩.
$ docker run -ti -d -v $(pwd)/test.txt:/home/ubuntu/test.txt ubuntu
우선 호스트 환경에 test.txt에 hi!라는 문자를 저장한다 저장된걸 컨테이너 환경의 ubuntu /home/ubuntu/ 경로에 마운트 하는 명령어이다.
컨테이너를 띄웠다면 docker exec 명령어로 ubuntu 컨테이너 내부에 접속해서 확인한다면 호스트환경에 있던 test.txt가 마운트 설정한 경로에 잘 저장된 걸 확인할 수 있다.
기술 출처
https://docs.docker.com/engine/reference/commandline/run/
docker run
docker run: The `docker run` command first `creates` a writeable container layer over the specified image, and then `starts` it using the specified command. That is, `docker run` is equivalent...
docs.docker.com
'DevOps > Docker' 카테고리의 다른 글
[Docker] GitHub Actions으로 docker CI (도커캐시) (0) | 2023.01.12 |
---|---|
[Docker] ubuntu에서 docker & docker-compose 설치 방법 (0) | 2022.12.30 |
[Docker] docker 이미지 생성하기 (0) | 2022.12.12 |
[Docker] docker 로그 확인하기 (0) | 2022.12.05 |
[Docker] docker 볼륨 컨트롤하기 (0) | 2022.12.05 |