본문 바로가기
도커 & 쿠버/도커 사용해보기

도커 기본 다지기 1

by dudung__ 2023. 9. 11.

좋다 좋다 많이 들어봤지만, 실제로 어떻게 돌아가는지는 정처기를 공부할때 어렴풋이 공부한 정도가 다라서... 관련된 공부를 해보려함(인프런, 유튜브 - 생활코딩, 책 등등)

=> 접근성이 좋은 유튜브 강의(제일 유명하신걸로 알고 있는 '생활코딩' 채널로 일단 기초내용을 다져보고, 책으로 넘어가려함

 

#출처 : 생활코딩

https://www.youtube.com/watch?v=Ps8HDIAyPD0&list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf 

 

=> 우리가 일반적으로 사용하는 가상화(전/반 가상화)

=> 운영체제를 각자 깔아야함 =>  운영체제를 포함하고 있기 때문에 무겁고 느려짐

 

 

 

=>  앱을 실행하는데 필요한 라이브러리, 실행파일정도만 가지고 있고  => host의 OS를 빌려와서 사용함

=> 라이브러리 실행파일만 가지고 있기 때문에 가볍고, 속도도 빠름(컨테이너), 저장장치의 용량도 아낄 수가 있음

=> 리눅스 운영체제에 내장되어있는 기술중에서 제일 많이 사용되는 것 => 도커

 

 

==> 정처기 공부를 할때 '컨테이너 -> 도커'라고 달달 외울정도로 머리에는 확실히 박혀있는 단어들이다

 

 

==> 이런식으로 설명을 들으니 훨씬 이해하기 쉬운 느낌이다

 

 

=> 기본적으로 리눅스 운영체제 내에서 동작이 됨
=> 평소에 사용하던 vmware 나 virtual box등을 이용해서 윈도우 OS 위에 가상 머신(리눅스 OS)을 깔아서 사용하면 문제 없음 -> 이마저도 도커가 많은 부분을 해결해줌  | 다만 약간의 성능저하는 어쩔 수 없는 부분임

 

 

 

 

 

** 설치방법

 

- 도커 홈페이지를 방문

 

https://www.docker.com/

 

Docker: Accelerated Container Application Development

Docker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.

www.docker.com

 

 

developers -> docs

 

download and install

 

=> 운영체제별로 docker를 설치할 수 있게 되어있음

=> 본인에게 맞는 운영체제의 프로그램을 받아서 설치를 하면 됨

 

 

설치를 하다보면 이런 설정창을 볼 수 있는데, 첫번째부분이 중요한부분이다. 2번째는 그냥 바로가기 생성 여부임

windows home vs window pro 의 차이는 => hyper-v의 지원여부인데, 보통은 집에서 home edition을 사용하기 때문에 hyper-v로 사용할 수 없기 때문이다

그러나, 2020년 업데이트로 home에서도 hyper-v대신에 사용할 수 있는 WSL2를 정식으로 풀어줬기 때문에 저것을 체크하고 사용설치를 하면 문제가 없다(내 노트북도 pro가 아니기 때문에 알고 있어야할 정보임) => 괜히 추천이라고 떠있는게 아니였구나

 

===> 설치를 진행해주면 됨

 

 

- .exe 파일을 이용한 설치 후

 

=> 설치하고나면 GUI 환경에서 사용할 수 있긴 하지만, CLI 환경에서 사용하는것이 더 효율적임

 

 

 

=> 다 깔고나서 실행하려하니, WSL의 버전이 너무 낮다고 오류가 떴음

=> 일단  아까 블로그에 있던대로 WSL의 버전을 바꿔볼 것임

 

cmd를 관리자 모드로 실행한다음

 

wsl --set-default-version 2

명령어를 실행해줬음

(윈도우 10 버전 2004(빌드 19041 이상)이나 윈도우 11에는 기본적으로 wsl 명령어가 포함되어있다고 함 )

 

wsl --update

=> 저것만으로는 다시 오류가 발생해서 추가적으로 실행함

 

=> 시간이 좀 걸리긴했지만, 성공적으로 부팅이 되었음

 

 

cmd에  docker images 라고 쳤을때 에러가 뜨지 않으면 성공적으로 설치가 완료된 것 이라고 함

=> 이제 명령어로 docker를 제어할 수 있음

 

 

 

 

 

 

=> 일반적으로 사용하는 앱스토어와 도커에서 사용되는 개념을 대응 시켜놓은 것

 

 

=> 이렇게 생각하면 됨

=> 프로그램안에 여러개의 프로세스들이 있듯, image 안에도 여러개의 container가 존재할 수 있음

 

 

 

- image 다운로드(pull)

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Deliver your business through Docker Hub Package and publish apps and plugins as containers in Docker Hub for easy download and deployment by millions of Docker users worldwide.

hub.docker.com

 

 

=> 편하게 사용하기 위해서 일단 가입을 진행

=> explore

=>

=> 원하는 이미지를 다운받을 수 있음

 

웹서버(apache web)가 포함된 container를 받아볼 것임  => httpd(리눅스의 데몬 이름과 동일하네?)

=> 뱃지와 함께 official image가 박혀있는것은, 이 사이트에서 공식적으로 지원한다는 의미 => 믿을만함

 

docker pull httpd => 명령어를 사용하면 받을 수 있다는 것을 나타냄

 

 

https://docs.docker.com/

 

Home

Home page for Docker's documentation

docs.docker.com

=> 도커의 사용방법을 알 수 있는 사이트

 

=> reference => CLI command line interface reference => 사용하려는 명령어를 찾을 수 있음(사용법)

 

내가 지금 사용할 pull이라는 명령어를  찾아봤음

 

docker pull httpd

=> 아까 cmd(윈도우)에서 CLI환경으로  docker를 사용가능하게 해놨기 때문에 => 바로 실행해주면 됨

(httpd 이미지 다운로드 )

 

=> 확인

docker images     

=> 아까 아무것도 없던 설치 직후와 다르게 잘 다운되어있는 것을 볼 수 있음

=> 정보를 확인 가능함

 

 

+ GUI에서도 가능함

앱을 들어가보면

방금 다운로드한 httpd 이미지가 잘 보이는것을 볼 수 있음

 

 

 

- image 실행(run) => 컨테이너 실행

 

-> 프로그램에서 실행

=> run 버튼이 있음

 

=> 아무 설정 없이 run을 눌러도 되지만, 여러개의 프로세스를 돌리다보면 헷갈리기 때문에 관련 정보에 대한것을 넣어주는 것이 좋음

=> 일단은 이름만 지정해보겠음

 

 

 

실행시키고 나면, 로그들을 볼 수 있음

+ 로그뿐아니라, 자세한 정보, 상태,  자원의 사용량 등을 볼 수 있음

=> 우상단에 위치한 버튼들을 통해서 컨테이너를 관리할 수 있음

stop / run / restart / delete

 

 

-> CLI에서 실행

 

 

 

동일하게, docs에서 찾아볼 수 있음(aws 공부할때도 공식문서 많이 뒤져봤었는데 그런 느낌과 비슷함)

 

 

 

보기 편하게 하기 위해 여러개의 cmd 창을 띄워놓음

 

docker run httpd => 실행

docker ps => 현재 실행중인 container를 표시

=> 하나를 더 실행시켜볼 것임(여러개를 한번에 실행하는것이 가능)

 

이런식으로 이름을 지정할 수 도 있음

 

=> 확인

 

 

 

 

- container image 중지(stop)

 

=> stop + 이름을 적어주면 됨

 

 

=>  성공적으로 중지된 것을 볼 수 있음

 

 

=> 원래 앱이 돌고있던 창에서는 성공적으로 꺼졌다는 것을 확인할 수 있음

 

 

전체 컨테이너 확인

docker ps -a

=> 실행중인 컨테이너 뿐 아니라, 이미 중지시킨 컨테이너도 목록에 나오는것을 볼 수 있음

=> stop이 delete는 아니라는것을 알 수 있음

 

 

=> 꺼놓은 것을 다시 실행

 

꺼놓은것을 다시실행 할때는 처음 실행할때와 다르게  log 가 보이지 않음 => log 명령어를 통해서 볼 수 있음

 

 

docker log dudu

=> 컨테이너가 꺼진 기록과, 다시 켜진 기록이 모두 보이는것을 볼 수 있음

=> 로그가 한번 출력되고 마는데, 실시간으로 띄워놓고 계속 보고 싶다면

 

-f 옵션을 추가해주면 됨

 

 

docker ps

 

=> 물론 이것으로도 확인 가능

 

 

 

 

- container 삭제

 

 

현재 실행중인 컨테이너는 일반적으로는 바로 삭제할 수 없고, stop한 후에 삭제하면 됨

=> 확인해본결과 삭제 됨

 

++ --force를 붙여서 명령어를 사용하면 stop하지 않고도 삭제 가능

 

 

 

- image 삭제

 

=>  GUI

 

 

 

물론 실행중이거나, stop 상태의 container가 있으면 이미지의 삭제는 불가능하고, 다 지운후에 image 삭제 =>

성공적으로 삭제가 가능함

 

 

 

 

 

'도커 & 쿠버 > 도커 사용해보기' 카테고리의 다른 글

도커 기본 다지기 4  (0) 2023.09.14
도커 기본 다지기 3  (0) 2023.09.13
도커 기본 다지기 2  (0) 2023.09.12