들어가기 앞서
맥북 프로에 Oracle Database를 설치하기 위해서는 Docker 내에 Oracle을 띄워야 했습니다. 이에 따라 Oracle Database를 설치하기 전 Docker를 설치해보도록 하겠습니다. Docker를 설치하기 전에 간단히 Docker가 무엇인지 체크하고 넘어가도록 하겠습니다.
Docker란?
Docker는 Docker, Inc가 개발중인 컨테이너 환경을 제공하기 위한 소프트웨어입니다.
Docker는 어플리케이션이 움직이는 환경을 컨테이너라는 단위로 가상화하고, 이 컨테이너형 가상화 뿐 아니라 컨테이너의 베이스가 되는 이미지를 효율적으로 만드는(빌드) 기능과 이미지를 배포하기 위한 구조(Docker Hub와 같은 저장소 서비스)도 갖추고 있는 것이 특징입니다.
컨테이너형 가상화
Docker를 사용하기 전에는, VirtualBox나 VMWare와 같은 하이퍼바이저형 가상화를 사용했습니다.
하이퍼바이저형 가상화의 경우, 가상화 환경의 단위가 하드웨어 전체 및 OS 전체(Xen 및 Hyper-V)여서 하이퍼바이저라는 프로그램이 가상화를 위해 개입되어야 했습니다.
하이퍼바이저를 사용함에 따라 성능 저하가 발생하거나 메모리 혹은 디스크와 같은 리소스를 가상 환경에 할당을 해야해서 리소스 소비량이 많아진다는 단점이 있었습니다.
이에 반해 Docker는 컨테이너 단위로 환경을 가상화하여 호스트 OS상의 프로세스로서 각각 컨테이너 형태로 격리된 상태로 움직입니다.
- 격리된 컨테이너의 프로세스에서 다른 컨테이너나 호스트 호나경의 프로세스에 접속할 수 없습니다.
컨테이너에 대해 별도의 루트 디렉토리(접속 가능 파일 범위)가 할당되어 호스트 환경과는 별도의 IP 주소를 할당할 수 있습니다. 또한, 각각의 컨테이너에서 실행되는 프로세스에 대해 사용할 수 있는 호스트 환경의 CPU나 메모리 자원의 제한량을 설정할 수 있습니다.
Docker는 컨테이너 내에서 볼 수 있는 파일은 이미지 형태로 처리되며, 실제로는 호스트 환경의 파일 시스템에서 파일로 추출됩니다. 파일 시스템 기능을 사용함으로써 동일한 이미지와 함께 실행 중인 컨테이너가 같은 파일에 기록되지 않으면 동일한 파일을 참조하게 됩니다. 이로 인해, 하이퍼바이저형 가상화보다 Docker의 컨테이너형 가상화가 성능이 저하되는 소비 자원이 적다는 장점을 가지고 있습니다.
Docker 이미지
Docker에는 immutable infrastructure(불변 인프라)라는 개념이 도입되어 있습니다. 이 개념은, 이미지로 만들어진 환경을 변경하지 않고 컨테이너가 움직이는 동안은 파일을 변경해도 오리지널 이미지가 변경되지 않는다는 것입니다.
immutable infrastructure 개념을 통해, Docker는 어플리케이션이나 패키지 업데이트가 발생했을 때 해당 업데이트가 적용된 이미지를 만들고 새로운 이미지를 바탕으로 한 컨테이너를 다시 시작해 컨테이너 구성을 고정화합니다.
- Docker를 사용하지 않았을 때에는 업데이트 시 기존 패키지가 이미 설치되었는지, 기존 설정 파일을 변경했을 때 발생할 이슈를 체크해야 했습니다.
Docker 이미지 빌드는 항상 이전 단계의 이미지에 변경 사항을 저장하는 형태로 실행되기 때문에, 항상 새로운 환경에서 새로운 패키지를 넣는 형태로 실행됩니다.
Docker Compose
Docker Compose는 여러 컨테이너로 실행되는 어플리케이션을 정의하고 관리하기 위한 도구입니다. Docker Compose로 이러한 여러 컨테이너를 프로젝트와 서비스라는 단위로 관리할 수 있습니다. 프로세스 및 서비스의 설정은 YAML 파일에 의해 정의되고 Docker Compose가 YAML 파일을 읽는 방식으로 컨테이너를 조작합니다.
Docker 설치하기
Docker 설치 환경 정보
- MacBook Pro(13-inch, 2018, Four Thunderbold 3 Ports)
- macOS Catalina 버전 10.15.7(10.14 또는 그 이상의 버전에서 설치 가능)
- 프로세서 2.3 GHz 쿼드 코어 Intel Core i5
Docker에는 Enterprise Edition(Docker EE)와 Community Edition(Docker CE)가 있으며, 개인 PC에 설치하는 것이기 때문에 Docker CE를 설치해보도록 하겠습니다.
Docker 설치 방법은 하기 URL에 접속하시면 더욱 자세히 확인할 수 있습니다. 특히, 필자와 버전이 다른 경우 설치 방법이 다를 수 있으므로 꼭 확인하고 설치하는 것이 좋습니다.
macOS의 경우 Docker Desktop for Mac을 설치함으로써 Docker와 Docker Compose를 사용할 수 있습니다. Docker Desktop for Mac은 macOS용 디스크 이미지 파일(.dmg)로 제공되므로, 하기 URL에서 다운로드 할 수 있습니다.
필자의 경우 Intel Chip이 들어간 macOS를 사용하고 있어 Mac with Intel chip을 클릭하여 .dmg 파일을 다운받았습니다. dmg 파일이 다운로드 완료되면, 해당 파일을 열어 Docker 아이콘을 Applications 폴더에 드래그 앤 드롭합니다.
그 후, Applications을 더블 클릭하여 어플리케이션 폴더를 열고 Docker 어플리케이션 아이콘을 더블 클릭합니다. 인터넷을 통해 다운로드한 어플리케이션이기 때문에 초기 시작할 때 경고창이 뜰 수 있지만, 열기 버튼을 클릭하여 열면 됩니다. privileged access가 필요하다는 팝업 역시 OK 버튼을 클릭하여 허용하도록 합니다. 아래 사진에는 없지만 해당 접근 허용 시, 관리자 권한 계정 암호를 입력해야 하므로 암호를 넣은 후 보조 프로그램 설치 버튼을 클릭하여 설치합니다.
Docker 설치가 완료되면, 상단바에 도커 아이콘이 뜨고, 해당 아키노 클릭 시 Docker Desktop is running이 뜨게 됩니다. 만약, Docker Desktop is starting이라고 뜬다면, 조금 더 기다리면 문구가 변하는 것을 확인할 수 있습니다.
mac의 터미널창에 docker version
를 실행해보면 Docker가 정상적으로 설치되었는지 확인할 수 있습니다.
- client와 server의 두 버전이 각각 표시되면 정상적으로 설치가 완료된 것입니다.
- Docker Desktop for mac을 통해 함께 설치된 docker-compose 역시
docker-compose version
명령어를 통해 버전을 확인할 수 있습니다.
'MAC > DEVELOP' 카테고리의 다른 글
[macOS] sdkman 을 활용한 Java 버전 관리하기 (0) | 2023.08.29 |
---|---|
[macOS] iTerm2 한글 자소분리 현상 해결법 (0) | 2021.09.21 |
[MacOS] TOMCAT 9 설치하기 (0) | 2021.07.24 |
[MacOS] Visual Studio Code에 python 3 개발 환경 세팅(python 설치 및 TIP 포함) (0) | 2021.05.03 |
[GCP] MAC 터미널에서 GCP VM 인스턴스 연결하기(외부IP) (0) | 2021.01.10 |