20220223 Docker 클라우드가 아닌 로컬

DUUUPPAAN·2022년 2월 22일
0

Docker

목록 보기
2/2

·어제에 이어서 도커 로컬에서 사용하기

-아래의 링크를 통해 도커 홈페이지에 들어가게 되면, 다운로드 쪽에서 도커 데스크탑을 받을 수 있다. 굳이 따로 설정을 안해줘도 VM을 자동으로 설정해줘서 리눅스 운영체제에서 도커를 사용할 수 있도록 되어있는 것 같다. 물론, 윈도우즈 os에서 vm을 가동해서 리눅스 os를 통해서 진행하는 것이기 때문에 속도가 느린 것은 감수해야 한다. 그래도 오라클 버츄어 박스 같은 프로그램을 받아서 따로 설정해주지 않아도 되어서 충분히 편리하다고 생각한다.

https://www.docker.com/

다운을 받게 되면 이러한 아이콘이 생기게 되고, 해당 프로그램을 실행시키면

이러한 창이 뜨게 된다. 이 창은 쉽게 말하면, 깃을 편리하게 사용하기 위해 프로젝트 때 소스트리라는 툴을 사용한 것처럼 디자인적으로 더 쉽게 도커를 사용할 수 있게 해주는 일종의 사용자 친화적인 툴이라고 생각하면 편하다. 그러나 도커의 풀파워를 경험하기 위해서는 명령어를 통한 제어가 최고라고 하기에 cmd창을 열어서 명령어를 통해 제어해보도록 하겠다.

·cmd

docker images

-위의 명령어를 실행하면, 현재 내 컴퓨터에 있는 images들이 나타나게 된다.

-여기서 의문점이 생길 수 있다. 이미지?? 이미지란 무엇인가?
도커에서는 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 Image라고 한다. 즉, 컨테이너 생성에 필요한 모든 파일과 설정값을 지닌 것으로 더이상 뭔가 추가하거나 이것저것 설치할 필요가 없는 상태의 파일을 의미한다. 예를 들어, ubuntu image는 ubuntu 운영체제를 실행하기 위한 모든 파일을 가지고 있다. 또한 하나의 이미지는 여러 컨테이너를 생성할 수 있고, 컨테이너가 삭제되거나 생성되더라도 이미지의 변화는 없다.

-도커는 이런식으로 이미지를 받아서 해당 이미지를 통해 컨테이너를 만들고 수정하고 삭제하는 방식으로 이용된다고 생각하면 된다.

-우선 아파치 톰캣이라는 이미지를 받아보도록 하자.

hub.docker.com

-위의 링크로 들어가보도록 한다. 위의 explore를 눌러서 httpd를 검색한다. httpd는 아파치 톰캣의 이미지 이름이라고 생각하면 된다. 해당 링크로 들어가서 httpd를 보면,

위와 같이 오피셜 이미지란 단어가 있다. 이건 도커에서 공식적으로 인정한 이미지라는 뜻으로 주의할 필요가 없다고 보면 된다. 눌러서 들어가면 도커에서 아파치 톰캣을 사용하는 일종의 설명글들이 있다.

-우선은 httpd를 pull 받아보도록 한다. 깃도 리눅스 기반 명령어여서 굉장히 비슷한 점이 많다는 것을 여기서 느꼈다.

docker pull httpd

-위의 명령어를 cmd창에서 실행하면 다음과 같이 다운로드가 진행된다.

이제 다시 docker images를 쳐보도록 한다.

보면 위와 같이 httpd라는 image가 생성된 것을 볼 수 있다.

·이미지를 실행시켜 컨테이너를 생성하기

-우선 가장 편하게 컨테이너를 생성하는 방법은 아무래도 docker desktop 프로그램을 통해서 하는 것이다.

보시다시피 왼쪽의 images를 누르면 httpd쪽에 run 버튼이 있는 것을 확인할 수 있다.

이제 여기서 해당 컨테이너의 이름을 설정하고 run을 해보도록 한다.

container1이라는 이름으로 run을 해줬고 해당 컨테이너가 생성된 것을 확인할 수 있다.

누르면 해당 컨테이너의 런상태를 확인할 수 있다.

-그러나 역시 cmd 창에서 하는 것도 해보는 것이 좋다고 생각한다.

docker ps

-위의 명령어를 cmd창에서 입력하는 경우 현재 실행중인 컨테이너를 볼 수 있다.

-보시다시피 생성된 시간, 상태 그리고 포트번호 등을 확인할 수 있다.
-cmd창에서 컨테이너를 생성하는 경우에는 간단하게

docker run httpd

위의 명령어를 사용하면 할 수 있다. 그런데 이렇게 생성된 컨테이너는 이름이 확실하게 지정되지 않아서, 만약 이름을 확실하게 주고 싶다면, 다음과 같이 이름을 지정해서 생성할 수 있다.

docker run --name container2 httpd


이런식으로 이름이 지정된다.

이제 해당 컨테이너를 정지해보도록 한다.

docker stop container2


보시다시피 이렇게 정지된 것을 볼 수 있다.

컨테이너 삭제는 rm명령어를 사용한다. rm은 깃에서도 사용해본 명령어라서 뭔가 익숙함이 느껴졌다. 물론 이 때, 실행중인 컨테이너는 반드시 중지시켜야 삭제가 가능하다.

docker rm container2

이 때 ps만 사용하면 현재 삭제가 되었는지 확인이 어렵다. 이때는 ps의 명령어에 옵션을 추가해주면 현재 존재하는 모든 컨테이너를 볼 수 있다.

docker ps -a

-a는 all의 약자이다.

·도커 더 사용해보기

-역시 클라우드에서 사용하는 것보다 로컬에서 사용하는 것이 훨씬 쉬운 것 같다. 뭔가 더 직관적이기도 하고. 내일은 더 깊이 있게 사용해보도록 하려고 한다. 물론 깊이있게라고 해도 프로젝트 수준으로까지는 하지 못하겠지만 그래도 어느정도 개념은 잡고 명령어를 사용하고 싶다.

profile
비전공자란 이름으로 새로운 길을 가려 하는 신입

0개의 댓글