Milky's note

Docker 설치(Mac) 본문

DevOps/Docker

Docker 설치(Mac)

밀뿌 2022. 12. 8. 18:05

먼저 도커를 설치하기 전에 도커가 무엇인지? 도커를 실행시키는데 필요한 건 어떤 것들이 있는지 간단하게 기술하려고 한다.

Docker란?

Docker란 간단하게 말하면 컨테이너 기술을 사용하기 쉽게 만든 프로그램이다.

  • 컨테이너

그러면 먼저 컨테이너 기술에 대해서 알아야하는데 컨테이너 기술에 대해서 설명하면 Host OS 상에서 리소스를 논리적으로 구분하여 마치 별도의 서버인 것 처럼 사용할 수 있게 하는 기술이다.

이러한 컨테이너는 응용프로그램을 빠르고 쉽게 시작할 수 있는 portable units 이라고 할 수 있다.

하드웨어 수준에서 가상화가 이루어지는 VM과 달리 컨테이너는 애플리케이션 계층에서 가상화된다.

하나의 머신을 활용하고 커널을 공유하며 분리된 프로세스를 실행하기 위한 운영 체제를 가상화할 수 있다.

따라서 컨테이너가 매우 가벼워져 리소스를 많이 사용하지 않을 수 있다.

출처 :  https://phoenixnap.com/kb/docker-image-vs-container

  • Docker

Docker는 애플리케이션 구축, 구현 및 테스트를 위해 격리된 가상화 환경을 생성하는 서비스형 플랫폼이다.

Docker는 컨테이너 엔진으로 리눅스 커널 기능을 사용하여 운영 체제 위에 컨테이너를 만들고,

Docker 자체는 서비스의 컨테이너를 관리하는 데몬으로 실행된다.

  • Docker Image

Application을 포장 및 전송하기 위해 도커는 docker image를 사용한다.

Docker image는 파일로 어플리케이션 실행에 필요한 독립적인 환경을 포함하며, 런타임 환경을 위한 일종의 템플릿이다.

도커 이미지는 소스 코드, 라이브러리, 종속성, 도구 및 응용 프로그램을 실행하는데 필요한 기타 파일을 포함하는 불변(변경 불가) 파일이다.

이미지는 읽기 전용이므로 스냅샷이라고도 하며, 특정 시점의 애플리케이션과 가상 환경을 나타낸다.

이러한 일관성은 도커의 큰 특징 중 하나로 개발자가 안정적이고 균일한 조건에서 소프트웨어를 테스트하고 실험할 수 있도록 한다.

하나의 이미지는 여러 컨테이너를 생성할 수 있고, 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아 있다.

  • Docker Images vs Container

컨테이너가 존재하려면 이미지를 실행해야 하는 반면, 이미지는 컨테이너 없이 존재할 수 있다.

따라서 컨테이너는 이미지에 종속되어 런타임 환경을 구성하고 애플리케이션을 실행하는 데 사용된다.

도커 컨테이너는 실행 중인 이미지 인스턴스로 간주한다. 각각의 고유한 데이터와 상태를 가진 동일한 이미지에서 여러 개의 컨테이너를 만들 수 있다. 컨테이너 채택의 주요 이점은 개발, 운영 및 테스트의 표준화 및 단순화이다.

이미지는 특정 환경에 대한 정보가 변하지 않고 저장되는 정적인 형태의 파일이다.

이미지를 동적인 형태로 변경한 것이 컨테이너이며, 컨테이너가 구동된다는 것은 우리가 필요로 하는 OS와 특정 환경이 경량 가상화로 구현된다는 것을 의미한다. 컨테이너는 어플리케이션을 실행할 격리된 환경이다.

Docker 설치(homebrew-cask)

나는 Mac을 사용하고 있어서 docker를 homebrew cask로 설치하려고 한다.

homebrew-cask를 간단하게 설명하면

homebrew-cask란 homebrew의 확장판이다.

homebrew는 MAC용 패키지 매니저로 터미널에서 패키지를 설치한다면

homebrew-cask는 homebrew의 확장으로 GUI 애플리케이션을 설치한다.

 

설치 장소

homebrew-cask로 설치한 응용 프로그램은 기본적으로 Applicaion 폴더에 설치가 된다.

 

응용 프로그램 확인/업데이트

Brew cask로 설치한 응용 프로그램을 확인

$ Brew cask list

 

Brew cask로 설치한 응용 프로그램을 업데이트

$ Brew cask upgrade

 

Docker 설치

1. 터미널 창에서 brew —cask 명령어를 입력

brew install --cask docker

homebrew 업뎃 안 해서 업뎃 중 …. ㅎㅎ

 

2. 설치 확인

🍺 docker was successfully installed!
이 문구가 뜨면 설치 완료!!

 

3. Application에 가서 설치된 docker 확인

4. Docker 실행

실행하면 비밀번호를 한번 더 입력해주고 동의하라는 내용이 뜨는데 모두 다 해주면 Docker가 실행된다.

도커가 실행된 걸 확인하였고, 아직 컨테이너를 만든 게 없다.

여기까지하면 도커 설치가 완료되었다.

하지만 나는 궁금해서 샘플로 알려준 도커 커맨드를 입력해서 이미지랑 컨테이너가 동작하는 걸 확인해 보려고 한다.

실행 중인 컨테이너가 없는 상태에서 위의 커맨드를 수행하면 docker image의 실행과 컨테이너 동작을 확인할 수 있다.

docker run -d -p 80:80 docker/getting-started

# -d : 컨테이너를 백그라운드에서 실행
# -p 80:80 : 컨테이너의 80번 포트를 호스트의 80번 포트와 바인딩
# docker/getting-started : target image

위의 명령어를 입력해서 이미지를 pull 받았다.

 

그리고 도커 대시보드로 오면 이미지와 컨테이너가 생성된 걸 확인할 수 있다!!

 

도커 명령어를 이용해서 실행중인 컨테이너 목록을 확인할 수 있다.

docker ps

 

당연히 이미지 목록도 확인할 수 있다.

docker image

 

마지막으로 위에서 바인딩해준 포트인 80을 통하여 웹 페이지에 접속하면 컨테이너에서 실행중인 정보를 확인할 수 있다.

http://localhost:80

작지만 오른쪽 상단에 어떤 이미지를 사용 중인지도 알려준다.

 

만약 컨테이너를 중지하고 싶으면 다시 도커 대시보드로 와서 stop 버튼을 누르면 중지된다.

 

이 때 주의할 점은 컨테이너가 중지 되었어도 메모리에는 남아있어서

만약 컨테이너를 삭제하고 싶다면, 아예 삭제를 해주어야 메모리에서도 삭제가 된다.

 

'DevOps > Docker' 카테고리의 다른 글

Docker Mysql Sample Database 설치  (2) 2022.12.21
Docker에 Mysql 설치(MAC)  (0) 2022.12.20
Comments