Docker

Docker 톺아보기 13탄 - Docker Container 사용하기 (이론편)

AAROH 2022. 12. 20. 13:42


오늘은 컨테이너를 직접 사용하는 방법에 대한 이론을 배워보도록 할거야!

 

!! 이번 챕터의 목차 !!

Q1. 컨테이너 이미지를 어떻게 사용하나요?

Q2. 컨테이너를 실행하고 종료하는 명령을 알고싶어요!!

Q3. 동작 중인 컨테이너를 관리하는 명령어가 궁금해요!

 

이렇게 진행해볼거야

일단 우리 도커의 컨테이너가 어떻게 사용되어지는지

컨테이너의 라이프 사이클을 한 번 보자!

내가 그림을 준비해왔어!

그림을 참고해서 진행해보록 할거야!!

 

자, 그럼 가보자!!

 

== Q1. 컨테이너 이미지를 어떻게 사용하나요? ==

컨테이너 이미지를 사용하는 명령어들에 대해서 다시 한번 알아보자!

 

먼저 도커 허브에서 필요한 컨테이너 이미지를 검색하지!

$ docker search 이미지이름

 

그리고 찾은 컨테이너 이미지를 다운로드해!

$ docker pull 이미지이름:태그

 

다운받은 이미지들의 목록을 찾아봐!

$ docker images
$ docker image ls

 

다운받은 이미지를 삭제해!

$ docker rmi [옵션] 이미지이름

 

다운받은 이미지를 컨테이너화 해!

$ docker run 이미지이름:태그

 

다운받은 이미지 및 컨테이너화된 이미지 상세보기!

$ docker inspect [옵션] 이미지이름:태그

 

컨테이너 이미지를 도커 허브(레지스트리)에 업로드!

$ docker push 이미지이름:태그

 

이러한 명령들로 컨테이너를 관리할 수 있어!!

그런데 우리는 관리만 한거지 실행한건 아니야!

그럼 이제 실행하고 종료하는 방법을 알아보자!!

 

 

 

 

 

== Q2. 컨테이너를 실행하고 종료하는 명령을 알고 싶어요 ==

앞전에 컨테이너 이미지는 '컨테이너의 설계도' 라고 했지?

그러니까 우리는 이 설계도를 가지고 컨테이너를 create(생성) 해야 해!

컨테이너를 만들던가 해야 실행을 하던 종료를 하던 하잖아 그치?!

그래서 컨테이너화하는 명령은 다음과 같아!

$ docker create [옵션] 이미지이름:태그
$ docker create --name webserver nginx:1.14
# nginx 1.14 버전의 컨테이너 이미지로, webserver라는 이름의 컨테이너를 생성하는 명령

 

이렇게 하면 우리는 컨테이너를 만들게 되는거야!

하지만 컨테이너를 만들기만 한거지 실행한 건 아니야!

만들어진 컨테이너는 아래 명령으로 실행할 수 있어

$ docker start [옵션] 컨테이너이름
$ docker start webserver

 

컨테이너 이미지를 가져오는 pull 명령, 컨테이너를 생성하는 docker create 명령, 컨테이너를 실행하는 docker start 명령을 한 번에 실행하는 명령이 있어!

바로 docker run 명령이야!

$ docker run [옵션] 이미지이름:태그
$ docker run --name webserver -d nginx:1.14
# 도커 허브에서 nginx 1.14 버전의 컨테이너 이미지를 pull해서 가져오고,
# 가져온 이미지를 가지고 컨테이너를 생성하고,
# 생성한 컨테이너를 실행까지 한다

 

그러면 컨테이너들의 목록도 볼 수 있어야겠지?

$ docker ps [옵션]
$ docker ps -a
$ docker container ls

 

또, 컨테이너들의 상세 정보도 볼 수 있어야 해!

$ docker inspect [옵션] 컨테이너이름
$ docker inspect webserver
# 컨테이너, 컨테이너 이미지 모두 사용 가능한 명령

 

Running 중인 컨테이너를 중지시킬 수도 있어야 해

$ docker stop [옵션] 컨테이너이름
$ docker stop webserver

 

필요 없는 컨테이너를 삭제할 수도 있어야하구!

$ docker rm [옵션] 컨테이너이름
$ docker rm webserver
# -rf 옵션을 붙여서 강제로 삭제하기도 함

 

 

 

 

== Q3. 동작 중인 컨테이너를 관리하는 명령어가 궁금해요 ==

이젠 동작 중인 컨테이너를 관리하는 명령어를 알아보자!

 

먼저 위에서 언급했던 컨테이너 목록을 확인하는 명령이야!

단, 여기서는 '동작 중인' 컨테이너를 관리한다고 했으니까

옵션이 굳이 필요 없어

$ docker ps
# 동작 중인 컨테이너의 목록을 확인
# 컨테이너의 상태에 관계없이 모든 컨테이너를 보는 옵션은 -a 옵션

 

그리고 컨테이너는 포그라운드와 백그라운드로 실행시킬 수 있어

먼저, 포그라운드로 실행중인 컨테이너에 연결하는 명령이야

$ docker attach [옵션] 컨테이너이름
$ docker attach centos

 

또, 동작 중인 컨테이너에 새로운 명령어를 추가로 실행하는 명령이야

$ docker exec [옵션] 컨테이너이름
$ docker exec -it webserver /bin/bash

 

이건 docker ps와는 조금 다른데,

컨테이너 안에서 동작되는 프로세스들을 확인하는 명령이 있어

$ docker top [옵션] 컨테이너이름
$ docker top webserver

 

리눅스를 운용하면서 반드시 해야하는 것!

바로 로그 체크하기!!

컨테이너도 로그를 체크할 수 있어

$ docker logs [옵션] 컨테이너이름
$ docker logs webserver
$ docker logs -f webserver
# -f 옵션을 이용해서 추가로 생성되는 로그들을 모니터링 할 수 있다

 

이렇게 오늘은 도커의 컨테이너를 사용하는 방법들에 대해서 배워봤어!

다음 챕터에서는 이 방법들을 가지고 실습을 진행해보도록 할게!

오늘도 너무너무 고생 많았고

다음에 또 보자

안녕~