$> docker run -d -p 1521:1521 -p 8081:81 -v /Users/seungjulee/study/h2/makeHere:/opt/h2-data -e H2_OPTIONS="-ifNotExists" --name=h2 oscarfonts/h2 # 도커에 h2 이미지를 다운하고 컨테이너를 생성
d
: 도커 컨테이너를 백 그라운드로 실행p
: 컨테이너와 로컬의 포트를 연결하는 옵션v
:DB
저장 경로 (/Users/seungjulee/study/h2/makeHere
부분을 본인이 실제 저장할 경로를 넣으면 된다.)H2_OPTIONS="-ifNotExists"
- 이 옵션을 설정해야 내부에서 H2 데이터베이스를 새로 생성할 수 있다.name
: 이름을 정해주는 옵션. 이 옵션이 없으면 도커가 임의로 짓게 된다.
실행하게 되면 이미지 다운과 함께 도커 실행까지 완료된 것을 확인할 수 있다.
$> docker exec -it h2 /bin/bash
exec
: 구동중인 컨테이너 내부로 진입
-it
:bash
권한으로 명령을 실행하기 위한 옵션
h2 내부로 진입한다.
cd /opt/h2/bin/
java -cp h2-2.1.210.jar org.h2.tools.Shell
내부 컨테이너에서 /opt/h2/bin/
으로 이동하면 파일이 여러개 있는데 그중에 .jar
파일을 지정해준다.
-cp
: cp 옵션으로 사용할 jar파일들을 지정해주고, 시작할 main 메소드가 있는 클래스의 클래스패스를 입력해준다.
위 java
관련 옵션은 h2
공홈에서 나와있는 실행 방법이다.
http://www.h2database.com/html/tutorial.html#creating_new_databases
org.h2.tools.Shell
이 main
메서드가 포함된 클래스이므로, .jar
이름은 바뀔 수 있지만, 뒤 .Shell
이름은 바뀌면 안된다.
처음에 예시를 보여주므로, 해당 예시를 복사한 후에 밑에 붙여놓고 원하는 걸로 조금씩 바꾸면 된다.
localhost:8081
접속이 된것을 확인할 수 있다.
DB도 경로에 잘 생성된 것을 확인할 수 있다.