되면한다
03. 도커 이미지와 도커 컨테이너 본문
3-1. 도커 이미지와 도커 컨테이너 정의
1) 도커 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용프로그램을 실행하는데 필요한 모든 것을 포함하는 가볍고 독립적이며 실행 가능한 소프트웨어 패키지이다.
2) 도커 컨테이너는 코드와 모든 종속성을 패키지화하여 응용프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅환경으로 빠르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위이다.
도커이미지를 이용하여 컨테이너를 만든다. 따라서, 도커 컨테이너를 도커 이미지의 인스턴스라고 볼 수 있다.
(여기서는 도커 파일은 도커 이미지를 만드는 설정파일이라고만 알고 넘어가도록 하자.)
도커 이미지 | 도커 파일 + 도커 실행 시점 |
도커 컨테이너 | 도커 이미지+ 환경변수 |
도커에서는 바꾸고 싶은 부분을 환경변수로 설정하여 관리한다. 도커 이미지는 수정 가능한 부분과 수정 불가능한 부분으로 나누어져 있고, 도커 컨테이너에서 환경변수를 적절하게 설정한다.
3-2. 도커 이미지 이해하기
도커 이미지는 도커 허브에서 제공되는 이미지를 pull해서 사용할수있다.
1) 도커 허브에서 제공되는 이미지 pull 받기
1-1) docker images를 입력하면, 현재 pull되어있는 이미지를 확인할 수 있다.
$docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
당연히도 아직 아무 이미지도 없다.
1-2) 이제 이미지를 pull 하겠다.
$docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
Digest: sha256:69e70a79f2d41ab5d637de98c1e0b055206ba40a8145e7bddb55ccc04e13cf8f
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
1-3) 다시 docker images을 입력하면
$docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 6dbb9cc54074 4 weeks ago 5.61MB
이미지가 pull된 것을 확인 할 수 있다.
3-3. 도커 컨테이너 이해하기
도커 이미지가 준비되었다면, 이를 이용하여 컨테이너를 생성할 수 있다.
1)이미지로 컨테이너 실행시키기.
1-1) docker ps를 사용하면, 현재 실행중인 컨테이너를 확인 할 수 있다.
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
실행중인 컨테이너가 없다.
1-2) 이제 docker run <이미지이름> <본인이 원하는 명령어> 를 사용하여 컨테이너를 실행시켜보자
$docker run alpine ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.058 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.108 ms
64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.098 ms
...
1-3) 이제 새로운 터미널 창을 열어, 실행중인 컨테이너를 확인해보자.
$docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45ade043d261 alpine "ping localhost" About a minute ago Up About a minute silly_heisenberg
cf) 1-2)에서 docker run alpine을 하면, 컨테이너가 켜졌다가 바로 꺼져서 docker ps로 확인하면 컨테이너가 아무것도 실행되지 않는다.
1-4) 컨테이너를 중지하고 싶다면, 1-3) 터미널에서 docker stop <컨테이너 아이디/이름>을 해준다. 그러면 잠시 시간이 지나면 1-2)터미널에서 컨테이너가 중지된것을 볼 수 있다.
$docker stop 45ade043d261
45ade043d261
cf) docker stop silly_heisenberg도 가능
1-5) 컨테이너가 중지되었기 때문에, docker ps 명령어 입력시, 실행중인 컨테이너가 없는 것을 알 수 있다.
과거의 실행되었던 컨테이너를 확인하고 싶다면, docker ps -a라고 입력해보자.
$docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45ade043d261 alpine "ping localhost" 8 minutes ago Exited (137) 2 minutes ago silly_heisenberg
참고:
왜 굳이 도커(컨테이너)를 써야 하나요? - 컨테이너를 사용해야 하는 이유 | 44BITS
따라하며 배우는 도커와 CI환경(인프런 강좌)
설명에 문제가 있으면 알려주세요!
'도커' 카테고리의 다른 글
에러: Head https://registry-1.docker.io/v2/library/node/manifests/alpine: net/http: TLS handshake timeout (0) | 2021.05.18 |
---|---|
컨테이너 가상화 기술 (0) | 2021.05.15 |
도커 permission denied (0) | 2021.05.15 |
02. 도커 설치하기(우분투 20.04) (0) | 2021.05.14 |
01. 도커를 쓰는 이유 (0) | 2021.05.14 |