목차
개요
intelliJ 내에서도 Docker 플러그인을 통해서 프로젝트에 필요한 컨테이너들 관리가 가능하다.
사실 Docker Desktop을 들어가지 않고도 관리가 가능하다 라는 장점,,, (db를 deploy해도 자동으로 잡아주지도 않는다.) 정도 있는것 같다.
IntelliJ IDEA plugin 에서 수동 설정하여 docker 실행하기
Ctrl+Alt+S 단축키를 눌러 IDE 설정에서 '플러그인'을 선택가능하다.
이후에는 Service 탭에 Docker Connection으로 도커를 실행시키자.
Docker for X(저절로 잡혀있다. ) 이부분에 대해서는 나중에 platform 관련된 설정을 할 필요가 없는것이랑 상통한다. IntelliJ를 설치할때 부터 유저의 OS가 무엇인지 판별하고 설치를 진행하기 때문에 Docker 에 관련된 설정을 할때에도 저절로 유저의 OS를 인식하여 설정하게 된다고 한다.
다음으로는 OK를 누르고 난 이후의 화면이다. 드롭다운의 메뉴중에 Images를 클릭해주도록 하자
이미지에 본인이 원하는 앱을 검색하도록 해보자.
default tag는 lastest로 자동으로 할당되어있다.
특정 버전이 필요한 경우에는 docker hub에 들어가서 버전 선택을 하면된다.
- Images 목록에 mysql:lastest가 형성되었다.
이제 mySQL을 실행하기 위한 파일들은 다운로드가 완료되었다. 이후에는 이미지를 완성하기 위해 설정값(환경설정)을 추가하여 도커 이미지를 완성시켜보자.
어떤 설정값을 설정해야 되는지는 docker hub위에 있는 mySQL탭을 검색해보면된다.
mysql - Official Image | Docker Hub
작동/사용을 위한 최소의 세팅
- 모든 데이터베이스는 계정이 필요하다. 따라서 이를 설정해주어야하고
- Enviromental variable
- 포트 구성을 해주어야한다.
- port
MYSQL_ROOT_PASSWORD 설정
-e 값 즉 Enviroment Variable 에 root password 설정을 해주어야 한다.
Port Binding 하기
compose 파일에서의 3306:3306과 같다. (여담이지만 mySQL 5.5 기반의 mariaDB도 3306이다.)
이후에 run을 통해 컨테이너를 만들고 실행을 해보자
IntelliJ에 등록하기
왜않YML? 같은 이미지로 다중 컨테이너 deploy
요리를 할때 레시피가 있으면 좋은 이유가 뭘까?
A : 같은 맛을 낼 수있다.(당연한게 아닌가?)
거기에 추가적으로 내가 매운것을 좋아하면 더 맵게.. 더 달게 등등 바리에이션을 줄 수 있다.
비슷하게 도커에 적용하여 호스트 포트에 변경을 주어서 같은 컨테이너를 동시에 여러개를 띄워보자
Container port는 mySQL/mariaDB가 3306을 사용해서 써봤고 톰캣은 8080,, 등 설정을 해주면 된다.
Host port의 경우에는 내 컴퓨터에 어떤 포트로 deploy 될 것인지를 결정하면 된다.
더블 mySQL이 가능하다!
왜않YML?
사실 docker-compose를 이용하는게 더 편하긴하다.
- 위의 방법은 port설정 등 설정을 명세하는 것이 번거롭다.
- 여러개의 db 혹은 컨테이너를 deploy 할 때 훨씬 편하다.
yml 파일을 만들어준다.
version: "3.1"
services:
db1:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
ports:
- 3307:3306
db2:
image: mysql:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
ports:
- 3306:3306
마찬가지로 password와 port 설정이 있어야한다.
이후에 >> 버튼을 누르게 된다면 컨테이너 두개가 형성된다.
심지어는 따로 구분이 가능해서 더 효율적인 관리가 가능해졌다!
마무리
도커는 배포 측면에서 아주 유용한 도구이다. 따라서 환경을 구성할때(DB 가 필요할때 도커 이미지를 이용하여 내가 원하는 설정을 추가하여 컨테이너를 만들어 이용하는 경우) 아주 유용하다. 화면의 이동 없이 intelliJ 내에서 전부 관리가 가능하였기에 유용하다고 느껴져 포스팅을 진행해보았다.
추가로 말을 하자면 사용할 컨테이너가 하나여도 docker-compose를 통해 deploy 하는것이 좋다고 느껴진다. 해당 방식의 단점이 이미 로컬 내에 container 가 작동중에 있다면 해당 플러그인에서는 이 프로젝트와 관련이 있는 컨테이너만 보여주는 것이 아니라 지금 작동하고 있는 모든 컨테이너와 존재하고 있는 이미지를 전부 보여주기 때문에 이를 적절하게 구분 할 수 있는 docker-compose 을 이용한 실행을 추천한다.
'Docker' 카테고리의 다른 글
도커로 MySQL 실행 - DockerCompose 파일 뜯어보기 (0) | 2023.04.05 |
---|---|
도커로 MySQL 설치하고 접속하기, MySQLWorkBench로 관리 (0) | 2023.04.05 |
튜토리얼(6) 멀티 컨테이너(Multi container apps) (0) | 2023.01.22 |
튜토리얼(5) 바인드 마운트(Bind mount)로 소스 코드 업데이트 (0) | 2023.01.21 |
튜토리얼(4) 볼륨 마운트(Volume mount)로 Persist DB관리 (0) | 2023.01.21 |