개발일기

Docker - 도커에 대한 간략한 예제 및 설명 본문

Web 서비스/Docker

Docker - 도커에 대한 간략한 예제 및 설명

Flashback 2021. 9. 24. 15:51
728x90
반응형

docker 고래~

Docker란 무엇인가?

Docker는 node, php, java, mysql, oracle 등의 이미지를 하나의 컨테이너로 통합시킨 후, 가상공간에 실행하는 일종의 가상화 플랫폼이다.

기존에 개발환경을 설정하기 위해서는 자신한게 필요한 것들을 패키지 매니저 또는 직접 해당 홈페이지에 이동하여 설치를 진행하는 약간의(?) 번거로운 과정을 거쳐 개발환경을 설정하였다. 물론 개인이 혼자 공부하거나 개인 프로젝트를 진행하기 위해 직접 세팅하는 경우에는 큰 문제가 없지만, 여러 사람이랑 같이 협업을 하며 프로젝트를 진행할시, 개발환경 세팅부터가 번거롭게 돌아간다. 각자의 시간을 소모하는 것도 문제지만 개발환경 세팅 중에 오류라도 발생하면 개발환경 설정에 소요되는 시간이 불가피하게 증가하게 된다.

이러한 문제점을 깔끔하게 해결하고자 도커가 등장하였다. 도커를 통해 개발환경을 세팅한 후, 배포하게 되면 다른 사람들은 개발환경 세팅에 대한 부담없이 로컬에서 바로바로 개발을 진행할 수 있게 되어 수월하게 프로젝트를 진행할 수 있게 된다.

 

docker의 구조

이 그림과 같이 App A ~ App F라는 여러개의 이미지를 하나로 묶은 컨테이너로 실행하여 환경을 구축한다.

 

 

Docker의 장점 세줄 요약 : 

  • 개발환경 세팅에 대한 소요시간이 줄어든다.
  • 여러 사람들과 프로젝트를 진행할 때, 개발환경을에 대한 오류없이 배포할 수 있다.
  • Linux등의 OS가 필요없이 컨테이너 환경에서 실행이 가능하기에 실행속도가 상당히 빠르다.

 

Docker Image란?

도커 이미지란 Java, PHP 등의 프로그래밍언어. 심지어는 Centos, Ubuntu 등의 OS를 가상 플랫폼 환경에서 설치할 수 있는 하나의 작은 요소라고 볼 수 있다.

도커 이미지를 생성하는 방법에는 간단하게 docker pull 명령어를 사용하여 관련 내용을 손쉽게 가져오는 방법이 있다.

docker pull nginx
docker pull php
docker pull node

이런 방식으로 터미널 창에 명령어를 입력하게 되면 해당하는 내용이 존재하는지 검색한 후, 존재할 경우 해당 이미지를 가져오게 된다.

 

docker pull php:8.0.9
docker pull node:14.15

이미지명에 버전명을 입력해주면 해당하는 버전으로 이미지를 가져오게 된다.

버전명을 기입하지 않을 경우 자동으로 latest가 추가되어 이미지를 가져오게 된다.

latest란 해당하는 이미지의 가상 최신버전을 가져온다는 뜻이다.

 

docker pull node

docker pull node를 통해 최신버전의 노드 이미지를 가져오는 모습이다. 이런식으로 이미지를 여러개 받아온 후, 하나의 컨테이너로 통합할 수 있게 된다.

 

docker pull node 완료

docker pull 을 통하여 이미지가 설치되면 도커 이미지 탭에서 설치된 이미지 목록들을 확인할 수 있다.


Docker container란?

도커 컨테이너란 도커의 다양한 이미지들이 모여 하나의 컨테이너로 구성된 것으로 독립적으로 실행하게 된다. 즉, 다른 컨테이너와의 충돌없이 독립적으로 실행이 되기에 여러개의 개발환경을 세팅하였더라도 다른 컨테이너와 충돌하여 세팅이 망가지는 경우가 없게 된다는 것을 뜻한다. 

 

docker run -t [이미지명:태그명] [실행 명령어]
docker run -t node:latest

 

터미널에 해당 명령어를 입력하면 node라는 이미지명, latest라는 태그가 달린 이미지를 빌드한다는 것을 뜻한다. 여기서 빌드란 해당 이미지를 컨테이너에 올리게 된다는 것을 뜻한다.

 

컨테이너 실행
컨테이너로 입장

 

컨테이너가 실행되면서 노드가 설치된 컨테이너로 들어갈 수 있게 된다.


이 외에도 도커 이미지를 컨테이너로 실행할 때, 추가적으로 적을 수 있는 다양한 명령어가 있다. 또한 도커 이미지를 커스텀하게 만드는 Dockerfile, 생성된 이미지들을 하나로 묶어서 컨테이너로 실행시키는 docker-compose 등의 대한 추가적인 내용이 있다. 관련 내용들은 다음 포스팅에 작성하고자 한다.

728x90
반응형

'Web 서비스 > Docker' 카테고리의 다른 글

Docker - prune을 활용하여 용량 확보하기  (0) 2022.06.22
Docker - Laravel, Nginx 세팅  (0) 2021.10.01
Docker - Docker compose란?  (0) 2021.09.30
Comments