brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jan 12. 2022

NCP 5탄-도커 -7/9


도커에 대해 알아보고 , 이미지를 다운받고, 이미지로 컨테이너 사용해보자


<1> 실습 환경

<2> 이미지 검색, 다운 받기

<3> 이미지 확인, 조회 , 이미지로 컨테이너 사용해보자




<1>  실습 환경


앞에서 설치한 k8s master 서버에 putty로 로그인해 사용한다.

https://brunch.co.kr/@topasvga/1682




<2> 이미지 검색, 다운 받기


1

docker search nginx


(admin-k8s:default) root@k8s-m:~# docker search nginx

NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

nginx                             Official build of Nginx.                        16113     [OK]

jwilder/nginx-proxy      Automated Nginx reverse proxy for docker con…   2107             [OK]

richarvey/nginx-php-fpm  Container running Nginx + PHP-FPM capable of…   820         [OK]

jc21/nginx-proxy-manager          Docker container for managing Nginx proxy ho…   309

linuxserver/nginx                 An Nginx container, brought to you by LinuxS…   160



2

다운 받기

docker pull nginx


(admin-k8s:default) root@k8s-m:~# docker pull nginx

Using default tag: latest

latest: Pulling from library/nginx

a2abf6c4d29d: Pull complete

a9edb18cadd1: Pull complete

589b7251471a: Pull complete

186b1aaa4aa6: Pull complete

b4df32aa5a72: Pull complete

a0bcbecc962e: Pull complete

Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31

Status: Downloaded newer image for nginx:latest

docker.io/library/nginx:latest



3

용어 확인 ?


이미지 태그 ?

이미지를 구분해주는 태그

태그를 명시하지 않으면 latest 태그를 기본으로 사용한다.

latest


Digest:  ?

이미지의 고유 식별자.

다이제스트가 같은 이미지는 이름이나 태그가 다르더라도 같은 이미지 이다.


Status:?

상태, 이미지를 내려 받은 레지스트리,이미지,태그 상태정보를 확인




<3>  이미지 확인, 조회 , 이미지로 컨테이너 사용해보자


1

도커 이미지 모두 확인


docker images


(admin-k8s:default) root@k8s-m:~# docker images

REPOSITORY                           TAG        IMAGE ID       CREATED         SIZE

nginx                                latest     605c77e624dd   13 days ago     141MB

k8s.gcr.io/kube-apiserver            v1.21.8    a5a584eef959   3 weeks ago     126MB

k8s.gcr.io/kube-controller-manager   v1.21.8    74e3bdf53cd3   3 weeks ago     120MB

k8s.gcr.io/kube-scheduler            v1.21.8    4cd11f55d2ec   3 weeks ago     50.9MB

k8s.gcr.io/kube-proxy                v1.21.8    f70621d55c05   3 weeks ago     104MB

calico/node                          v3.21.2    f1bca4d4ced2   5 weeks ago     214MB

calico/pod2daemon-flexvol            v3.21.2    7778dd57e506   5 weeks ago     21.3MB

calico/cni                           v3.21.2    4c5c32530391   5 weeks ago     239MB

calico/kube-controllers              v3.21.2    b20652406028   5 weeks ago     132MB

k8s.gcr.io/pause                     3.4.1      0f8457a4c2ec   12 months ago   683kB

k8s.gcr.io/coredns/coredns           v1.8.0     296a6d5035e2   14 months ago   42.5MB

k8s.gcr.io/etcd                      3.4.13-0   0369cf4303ff   16 months ago   253MB


2

nginx 이미지 만 조회해 보기


docker images nginx


(admin-k8s:default) root@k8s-m:~# docker images nginx

REPOSITORY   TAG       IMAGE ID       CREATED       SIZE

nginx        latest    605c77e624dd   13 days ago   141MB



3

이미지로 새로은 컨테이너 실행 해보기


 docker run -d --restart always nginx


(admin-k8s:default) root@k8s-m:~# docker run -d --restart always nginx

ddc740e553f94b6a6aff9dd793c3c9e31580fec18eade6ae61e3eb9e8065898f


-d = --detach   = 컨테이너를 백그라운드로 실행하라.

--restart always  = 컨테이너의 재시작 관련 정책. 비정상 종료시 재시작, 도커 시작시 컨테이너 시작하는 정책



4

 docker ps


(admin-k8s:default) root@k8s-m:~# docker ps

CONTAINER ID   IMAGE  COMMAND        CREATED          STATUS                     PORTS     NAMES

ddc740e553f9   nginx   "/docker-entrypoint.…"   38 seconds ago   Up 36 seconds   80/tcp    strange_goldstine


CONTAINER ID - 컨테이너 식별하기 위한 고유ID

IMAGE  -  컨테이너를 만든 이미지

COMMAND - 컨테이너 생성시 작동할 프로그램을 실행하는 명령어

CREATED  - 컨테이너 생성시간

STATUS - 작동을 시작한 시간

PORTS - 컨테이너가 사용하는 포트

NAMES - 컨테이너 이름


5

curl 127.0.0.1


(admin-k8s:default) root@k8s-m:~# curl 127.0.0.1

curl: (7) Failed to connect to 127.0.0.1 port 80: Connection refused


안된다?

왜?

pc -------- 호스트 --------- 컨테이너 80 


컨테이너에 80은 사용중이나, 호스트에서 전달 하는 방법이 없어서 안되는 것이다.


6

경로 설정해보자?


 docker run -d -p 8080:80 --name nginx-path1 --restart always nginx


7

확인

docker ps -f name=nginx-path1


(admin-k8s:default) root@k8s-m:~# docker ps -f name=nginx-path1

CONTAINER ID   IMAGE     COMMAND     CREATED     STATUS      PORTS                   NAMES

bea88a256ddc   nginx     "/docker-entrypoint.…"   57 seconds ago   Up 55 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   nginx-path1



8

curl 127.0.0.1:8080


(admin-k8s:default) root@k8s-m:~# curl 127.0.0.1:8080

<!DOCTYPE html>

<html>

<head>

<title>Welcome to nginx!</title>

<style>

html { color-scheme: light dark; }



9

nginx 이미지를 기반으로 만들어진 컨테이너 확인


docker ps -f ancestor=nginx


(admin-k8s:default) root@k8s-m:~# docker ps -f ancestor=nginx

CONTAINER ID   IMAGE     COMMAND       CREATED      STATUS     PORTS                       NAMES

bea88a256ddc   nginx     "/docker-entrypoint.…"   4 minutes ago    Up 4 minutes    0.0.0.0:8080->80/tcp, :::8080->80/tcp   nginx-path1

ddc740e553f9   nginx     "/docker-entrypoint.…"   17 minutes ago   Up 17 minutes   80/tcp                                  strange_goldstine




10

CONTAINER ID  일부로 중지가 가능하다.

ddc 로 중지


docker stop ddc


(admin-k8s:default) root@k8s-m:~# docker stop ddc

ddc


11

조회

docker ps -f ancestor=nginx


(admin-k8s:default) root@k8s-m:~# docker ps -f ancestor=nginx

CONTAINER ID   IMAGE     COMMAND       CREATED    STATUS     PORTS                          NAMES

bea88a256ddc   nginx     "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   0.0.0.0:8080->80/tcp, :::8080->80/tcp   nginx-path1


12

nginx 이미지를 사용하는 컨테이너 모두 정지하기


docker stop $(docker ps -q -f ancestor=nginx)


(admin-k8s:default) root@k8s-m:~# docker stop $(docker ps -q -f ancestor=nginx)

bea88a256ddc


(admin-k8s:default) root@k8s-m:~# docker ps -f ancestor=nginx

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES




13

nginx 이미지를 사용하는  정지된  컨테이너 모두  삭제하기


 docker rm $(docker ps -aq -f ancestor=nginx)


(admin-k8s:default) root@k8s-m:~# docker rm $(docker ps -aq -f ancestor=nginx)

bea88a256ddc

ddc740e553f9



14

조회 ?


docker ps -a -f ancestor=ngix


(admin-k8s:default) root@k8s-m:~# docker ps -a -f ancestor=ngix

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES



15

컨테이너 삭제완료

이미지도 공간을 차지하므로 이미지도 삭제하자


docker rmi $(docker images -q nginx)


(admin-k8s:default) root@k8s-m:~# docker rmi $(docker images -q nginx)

Untagged: nginx:latest

Untagged: nginx@sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31

Deleted: sha256:605c77e624ddb75e6110f997c58876baa13f8754486b461117934b24a9dc3a85

Deleted: sha256:b625d8e29573fa369e799ca7c5df8b7a902126d2b7cbeb390af59e4b9e1210c5

Deleted: sha256:7850d382fb05e393e211067c5ca0aada2111fcbe550a90fed04d1c634bd31a14

Deleted: sha256:02b80ac2055edd757a996c3d554e6a8906fd3521e14d1227440afd5163a5f1c4

Deleted: sha256:b92aa5824592ecb46e6d169f8e694a99150ccef01a2aabea7b9c02356cdabe7c

Deleted: sha256:780238f18c540007376dd5e904f583896a69fe620876cabc06977a3af4ba4fb5

Deleted: sha256:2edcec3590a4ec7f40cf0743c15d78fb39d8326bc029073b41ef9727da6c851f



https://brunch.co.kr/@topasvga/2108




감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari