[001] 도커 (Docker) 배우기 - 이미지 설치 & 컨테이너 실행

2023. 4. 7. 23:54프로젝트관리/Docker

반응형

안녕하세요~ totally 개발자입니다.

 

Docker (도커) 개요

 

Docker(도커)란 애플리케이션을 구축, 테스트 및 배포할 수 있도록 도와주는 소프트웨어 플랫폼이며 이 소프트웨어를 컨테이너(Container)를 이용하여 패키징하며 그 컨테이너에는 그 소프트웨어 실행에 필요한 것들 즉 환경 설정, 도구, 코드 등이 모두 포함되어 있습니다. 세팅, 운영 및 배포할 때 Docker를 이용하면 매우 편리하게 진행할 수 있습니다. 도커 도입 이전에는 보통 인프라가 다를 때 즉 내 컴퓨터에서는 잘 돌아갔지만 다른 컴퓨터에서는 빌드 및 실행이 되지 않는 문제가 자주 발생하는데 이 Docker를 이용하면 외부 환경으로부터 격리된 공간에서 작동되기 때문에 OS 및 CPU에 관계 없이 컨테이너를 사용할 수 있다는 장점이 있습니다. 쉽게 말해 Docker만 설치되어 있다면 어떤 컴퓨터에서든지 동일하게 작동된다는 의미입니다. 

 

 

Docker (도커) 구조

 

도커는 Client, Docker Host, Docker Daemon, Registry, Image, Container로 구성되며 각 역할은 아래와 같습니다.

Client: 터미널, 명령 프롬프트 같이 사용자와 도커가 소통될 수 있도록 해주는 역할

Docker Host: Docker가 설치된 OS이며 Docker Engine이 설치되어 이미지 관리, 불륨 및 네트워크 관리가 이루어집니다.

Docker Daemon: Docker 명령어를 전달 받아 컨테이너 및 이미지 등을 생성하고 관리합니다.

Image: 프로세스를 실행하기 위해 필요한 어플리케이션 소스 코드, 설정 파일 등이 포함되며 컨테이너를 생성하기 위해 사용됩니다.

Registry: 외부 이미지 저장소로 public, private 용이 있으며 public으로는 Docker Hub, private로는 AWS 등이 사용됩니다.

Container: 이미지를 통해 생성되며 프로세스를 작동시킵니다.

 

가장 중요한 부분은 도커는 이미지를 사용해서 컨테이너를 생성하는 구조입니다. 

 

 

Docker 설치

 

Step 1: 설치 진행

 

저는 애플 실리콘 맥OS를 기반으로 설치를 진행했습니다. 

 

https://docs.docker.com/desktop/install/mac-install/

 

Install Docker Desktop on Mac

 

docs.docker.com

 

윈도우라면 아래 링크를 클릭해서 설치를 진행합니다.

https://docs.docker.com/desktop/install/windows-install/

 

Install Docker Desktop on Windows

 

docs.docker.com

 

 

Step 2: 아래처럼 Desktop App이 열리는지 확인해줍니다. 그리고 https://hub.docker.com/ 접속하셔서 회원가입 해주고 Docker Desktop 우측 상단에 있는 계정 부분에 hub랑 연동해주도록 하겠습니다. 

 

 

 

Step 3: 좌측 메뉴의 Images를 클릭한 후 Hub를 눌러줍니다. 이 예제에서는 httpd로 실습해보겠습니다.

 

 

 

Step 4: httpd를 입력한 후 아래에 Pull 버튼을 눌러서 이미지를 받아오도록 합니다. 물론 터미널(Terminal) 또는 cmd에서 docker pull httpd로도 이미지를 가져올 수 있습니다. 

 

위처럼 Name 아래에 httpd가 나온다면 성공입니다.

 

 

Step 5: 우측 Actions에 Run 버튼을 눌러줍니다.

 

 

 

Step 6: Optional settings를 눌러줍니다.

 

 

 

Step 7: Container name으로는 원하시는 이름을 입력해주시고 Host port도 원하시는 포트명을 입력하시면 됩니다. 저는 간단히 test_server1과 8080을 입력해주도록 하겠습니다. 여기에서 Host port는 8080이고 그 뒤에는 :80/tcp로 되어 있는데 이 8080은 Host의 port이고 뒤에 있는 80은 컨테이너의 포트 번호입니다. 이것을 포트 포워딩(Port Forwarding)이라고 하며 프로토콜(protocol)은 기본적으로 tcp(Transmission Control Protocol)가 적용됩니다. 연결 과정을 쉽게 설명하면 PC -> 호스트 -> 컨테이너 이렇게 접근하게 됩니다. 즉 PC에서는 localhost:8080으로 접속해주어야 이 컨테이너에서 80으로 연결하여 접속할 수 있는 방식입니다. 아래처럼 프로그램으로 Run 할 수도 있지만 터미널에서는 docker run -p 8080:80/tcp httpd 이렇게도 적용할 수 있습니다.

 

 

이렇게 해서 Run를 해보도록 하겠습니다. 

 

그러면 위와 같은 화면이 나옵니다. 그리고 여기의 8080:80를 누르면 바로 결과를 열어서 브라우저로 열어볼 수 있습니다. 또는 브라우저 창에 localhost:8080을 입력하면 됩니다.

 

그 후에 사용하지 않으실 때에는 중지 버튼을 눌러주시면 됩니다.

반응형