도커에 대해 알아보고 , 이미지를 다운받고, 이미지로 컨테이너 사용해보자
앞에서 설치한 k8s master 서버에 putty로 로그인해 사용한다.
https://brunch.co.kr/@topasvga/1682
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
감사합니다.