컨테이너를 실행해보자 [2]

Pak Heonjun·2023년 4월 22일
0

컨테이너의 생애는 3개 커맨드로 충분하다

컨테이너의 생애는 docker container run, stop, rm 만 있으면 된다.

도커 컨테이너의 생애는 생성, 실행, 정지, 삭제 이다. 이와 관련된 명령어인 docker container run, stop, rm 을 알아보자.

① docker container run : 컨테이너 생성과 실행

[root@host ~]# docker container run (옵션) 대상 (인자)

docker container rundocker image pull, docker container create, start합친 명령어 이다. 명령어의 대상이미지 명 이 들어간다. 옵션에는 --name, -p, -v 등을 사용할 수 있고, 데몬 형태로 동작하는 소프트웨어의 컨테이너-dit 를 사용하는 것이 일반적이다.

옵션내용
--name컨테이너 이름을 지정함
-p 호스트 포트번호:컨테이너 포트번호포트 번호를 지정
-v 호스트 디스크:컨테이너 디렉터리볼륨을 마운트함
--net=네트워크 이름컨테이너를 네트워크에 연결
-e 환경번수 이름=값환경변수를 설정함
-d --detach백그라운드로 실행
-i컨테이너에 터미널을 연결함
-t특수 키를 사용 가능하도록 함

Tip. 한번만 실행되는 컨테이너 vs 데몬 형태로 동작하는 컨테이너
-d 는 컨테이너를 백그라운드에서 실행, -it 는 컨테이너 내부에 터미널로 접속 하기 위해 사용한다. -d를 쓰지 않으면 컨테이너가 프로그램 실행을 마칠때까지 터미널 제어를 차지하고, -it를 쓰지 않으면 컨테이너 안의 파일 시스템에 접근이 불가하다.
한번만 실행되는 컨테이너의 경우, 실행하자마자 종료되므로 터미널 제어를 차지해도 일시적이며 파일 시스템에 접근할 이유도 없으므로 옵션 사용이 불필요하다.
실행된 프로그램이 저절로 종료되지 않는 컨테이너의 경우, 데몬으로 사용하기위해 -d를 사용해야한다.

데몬 이란 백그라운드에서 항상 동작하는 프로그램 을 의미한다.

② docker container stop, ③ rm : 컨테이너 정지와 삭제

[root@host ~]# docker container stop 컨테이너_이름(대상)
[root@host ~]# docker container rm 컨테이너_이름(대상)

docker container stop 은 컨테이너를 정지, docker container rm 은 컨테이너를 삭제 하는 명령어이다. 정지 상태가 아닌 컨테이너를 대상으로 삭제를 실행하면 오류가 발생한다.

컨테이너 목록은 docker ps 명령어

컨테이너 목록 확인docker ps = docker container ls 명령어를 사용한다.

도커 상의 컨테이너 리스트를 확인 하는 명령어는 docker ps 이다. 옵션 미사용 시에는 실행 중인 컨테이너 목록 을, -a 옵션 사용 시에는 모든 컨테이너 목록을 출력 한다.

출력된 목록의 주요 컬럼은 다음의 의미를 갖고 있다.

컬럼내용
IMAGE컨테이너 생성 시 사용한 이미지 이름
CREATED컨테이너 생성 후 경과된 시간
STATUS현재 상태, 실행 중이면 'Up', 종료된 상태면 'Exited'
PORTS컨테이너에 할당된 포트 번호, '호스트 포트 번호 -> 컨테이너 포트 번호' 형식으로 출력
NAMES컨테이너 이름

[실습] 컨테이너 생성/실행/정지/삭제

아파치 HTTP 서버(오픈소스 웹 서버 프로그램) 이미지로 컨테이너의 생애를 실습해보자. httpd아파치 HTTP 서버 프로그램 이미지 이름 이다.

C:\Users\82107 > docker container run --name apa000ex1 -d httpd

docker container run 명령어로 이미지 설치, 컨테이너 생성 및 실행 할 수 있다. 옵션으로 --name-d(백그라운드 수행) 사용한다.

C:\Users\82107 > docker ps -a | grep apa

docker ps 명령어로 위에서 만든 컨테이너 상태를 확인 한다. 컨테이너 목록이 많은 경우, 파이프 명령어와 grep 명령어(리눅스)로 조건에 맞는 리스트만 출력 할 수 있다.

C:\Users\82107 > docker container stop apa000ex1

docker container stop 컨테이너_이름 명령어로 실행 중인 컨테이너를 정지한다.

C:\Users\82107 > docker container rm apa000ex1

docker container rm 컨테이너_이름 명령어로 정지 상태의 컨테이너를 삭제한다.

Tip. 리눅스 명령어

| (pipe) 명령어는 여러개 명령어를 하나의 라인에 연결시켜서 수행하는 리눅스 명령어이다.
grep 명령어는 Global Regular Expression Print의 줄임말로 특정 파일에서 특정 문자열을 찾을 때 사용한다.

profile
more more

0개의 댓글