Cloud/Docker

Docker) Docker Container Run 옵션 실습해보기

Adım Kim 2022. 10. 2. 18:51
실습 환경 : AWS console (2022/09), Visual Studio
실습 목적 : Docker Container Run명령의 옵션을 알아보고 사용해보기

1.  Docker Container Run명령
자동삭제  -  rm 옵션


(1)  run 명령에 --rm옵션을 추가하여 실행

docker run -it --rm --name ubuntu1804 ubuntu:18.04 /bin/bash
# 옵션형식: --rm

  # --rm 옵션을 사용하면 container가 종료될때 자동으로 container를 삭제한다.


(2)  다른 프로세스에서 docker ps 명령을 입력해서 container가 실행중인지 확인

docker ps

 # 이름이 ubuntu1804 인 container가 실행중(UP)인것을 확인한다.


(3)  container 접속 해제

  # exit를 입력하여 container와의 접속을 해제한다.


(4)  모든 container 목록을 확인하여 해당 container가 삭제 되었는지 확인

docker ps -a

  # run 명령 실행시, --rm 옵션을 사용하지 않으면 container 상태가 Exited 상태여야한다.
  # --rm 옵션을 사용해서 container는 남아있지 않고 삭제되었다.




2.  Docker Container Run명령
Daemon모드 - dit 옵션


(1)  run 명령에 -dit 옵션을 추가하여 실행

docker run -dit -p 80:80 --name webserver nginx
# 옵션형식: -dit

  # -dit 옵션을 사용하면 백그라운드로 실행되며 터미널 상태로 상호작용이 가능하다.
  # container 생성과 동시에 UP(실행)상태로 설정되어있다.


(2)  exec 명령으로 container에 명령내리기

docker exec -it webserver /bin/bash

  # -it 옵션으로 생성한 container와 마찬가지로 exec 명령으로 container에 명령을 내릴 수 있다.




3.   Docker Container Run명령
환경변수 설정 - e 옵션


(1)  run 명령에 -e 옵션을 추가하여 실행

docker run -dit --name linuxserver -e VAR1=Ubuntu18.04 -e VAR2=LinuxServer ubuntu:18.04
# 옵션형식: -e <변수명>=<변수값>

  # -e 옵션을 사용하면 container 내에 환경변수를 설정하여 사용할 수 있다.
  # container 생성과 동시에 UP(실행)상태로 설정되어있다.


(2)  exec 명령으로 container에 변수가 생성되었는지 확인

docker exec -it linuxserver /bin/bash

# container 안에서 특정변수를 찾기위한 명령입력
export | grep -E "Ubuntu18.04|LinuxServer"

  # container에 변수 VAR1과 VAR2가 정상적으로 등록되었다.




4.  Docker Container Run명령
메모리 제한 - m 옵션


(1)  메모리 사용량 비교를 위해 m옵션을 사용한 container와 사용하지 않은 container를 생성

docker run -dit --rm --name linuxserver1 ubuntu:18.04
docker run -dit --rm --name linuxserver2 ubuntu:18.04
docker run -dit -m 1g --rm --name linuxserver3 ubuntu:18.04
# 옵션형식: -m <숫자><단위>

  # -m 옵션을 사용하면 메모리 사용량을 제한할 수 있다.
  # 메모리 사용량 비교를 위해 container 3개를 생성하였다.
 
# 단위로는 b,k,m,g를 사용할 수 있다.


(2)  docker 실시간 구동 확인

docker container stats
# or
docker stats

  # m 옵션을 사용하지 않은 두 container의 MEM LIMIT는 특정 값으로 고정되어있다. 
  # m 1g 를 지정한 container의 MEM LIMIT는 1GiB로 설정되어있다.




5.  Docker Container Run명령
CPU 사용 제한 - cpu-shares 옵션


(1)  run 명령에 --cpu -shares 옵션을 추가하여 container 두개 생성

docker run -dit --cpu-shares 512 --rm --name linuxserver1 ubuntu:18.04
docker run -dit --cpu-shares 512 --rm --name linuxserver2 ubuntu:18.04

 

  # --cpu-shares 옵션을 사용하면 container간 상대적인 CPU사용량을 제어할 수 있다.
  # 기본 container의 cpu-shares 값은 1024로 설정되어있다.