ㅁ 도커 설치
- 어제 wsl에 배포를 해봤기 때문에 이제 wsl은 닫는다.
버츄얼박스 이용해서 도커내용을 학습할거다. aws도 일단 닫는다.
192.168.10으로 시작하는 버츄얼박스에 설치되어있는 우분툼나 남겨놓는다.
- 구글에 docker install ubutnu
- https://docs.docker.com/engine/install/
- 도커 데스크탑이 아닌 도커 엔진을 다운받아야 한다.
- 각각 배포판마다 조금씩 다르다. 으ㅜ린 ubuntu에 설치한다.
- apt라는 명령자체가 우분투에 저장하고있는 저장소에서 패키지를 다운받아서 설치하는ㄴ거다.
그런데 도커라고하는 거는 최신 패키지가 우분투에 저장되어 있찌 않다. 우분투에 저장되어있긴한데 최신버전이 아니다.
- 우분투에서 제공해주는 도커 엔진?
- 1번 과정은 저장소를 추가하는거다. 최신버전의 도커를 추가하기 위해서.
우분투에는 최신버전의 도커가 없어서 최신버전의 도커를 설치할 수 있게하려면 1번을 추가해줘야 한다.
- sudo apt install curl wget
비번 1234, y누른다.
- 그다음 1번의 내용을 카피해서 붙여넣기 한다.
- 이러면 이제 최신버전의 도커를 설치할수있는 상태가 된거고,
그 다음 2번을 카피해서 붙여넣기한다.
- sudo apt-get update를 한건가? <- 이게 1번 붙여넣기 한 내용임.
이걸 하면 저장소 setup이 되었다.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- 위가 1번 복붙한 내용이다.
-그리고 2번을 붙여넣는다. install the docker packages.
2번까지 붙여넣기까지 하면 도커 설치가 완료된다.
- sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
이게 2번 내용임.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 그럼 sudo docker version을 입력해본다.
○ sudo usermod -aG docker admin1
- 도커 사용자를 sudo 명령을 쓸 수 있는 sudo라는 그룹에 가입시키는 거다. 앞으로 명령을 할 때 sudo를 안쓰려고.
- admin1 사용자를 docker 그룹에 포함시키는 명령이다.
admin1 사용자는 docker 명령을 실행할 때 sudo 명령을 안써도 됨. 안그러면 앞에 항상 sudo 명령을 붙여야 됨.
root이거나 docker그룹에 가입되어있어야 한다. admin1이라느 ㄴ사용자는 docker그룹에 가입이 안되어 있었다.
앞에 sudo를 안붙이ㅏ기 위해서 가입을 시켜준거다.
- 해도 뭐가 다른게 뜨는건 없다.
○ exit
- exit을 하고, 위의 탭을 닫고, 다시 192.168.10.~를 클릭해서 접속한다.
- 로그아웃하고 다시 접속해야 그 sudo 안붙이는게 적용이 된다.
○ docker ps
- 실행 중인 컨테이너 목록을 출력한다.
○ docker image ls
- 로컬에 저장된 Docker 이미지 목록을 출력한다.
※ sudo usermod -aG docker admin1
- 필수는 아니다.
- 그런데 안하면 docker ps, docker image ls할 때 앞에 sudo를 안쓰면 오류가 발생한다.
[2일차 끝]
==
여기에 복붙해야함
[2교시]
ㅁ 어제 우리가 돜 ㅓ설치했는데 안되어있으신분들고 ㅖ셔서 다시한번알려드림.
ㅁ
- 그다음 이제 3번에 설치가 제대로 됏는지 확인하는 명령이 있다.
복붙해본다.
- 어제 근데 usermode해서 sudo안쓰게끔했짢아요. 그럼 sudo 안붙여도 돼요.
안했으면 붙여야 하고.
- 3번을 붙여넣기 하면 헬로월드 이미지가 다운받아진다.
- 이렇게 출력되면 도커가 정상적으로 작동하고 있는거다.
- 저 명령엉르 한다.
- 좀전어ㅔ 우리가 다운받은 헬로월드가 보인다.
- docker 이미지 관련 명령이다.
odcker image를 하고 그 다음 내가 필요한 명령들을 쓸 수 있다.
- 이미지가 있어야지 이미지 가지고 컨테이너를 만들어 내느 ㄴ것이다.
- docker image ls
- 레퍼지터리 이름이 hello-world고 태그가 latest다.
이건 도커 공식 저장소에 잇는거라 아이디가 없다. 사용자 아이디가.
낵 ㅏ업로드한걸 다운받으면 gvenzl/oracle-xe 이렇게 뜬다 레포팆토리 이름에.
- docker pull gvenzl/oracle-xe:11
태그가 11번이란거다. 이걸 빼버리면 latest로 최신버전이 다운된다. 오라클이. 최신버전은 용량이 됙 ㅔ크다.
pull이 저장소에서 이미지를 다운받으라는 명령이다. 이미 있으면 다운안된다.
- docker pull nginx
다음 콜ㄹ론 안붙이면 자동으로 tag가 최신버전이 붙어서 다운된다. default tagr ㅏㄱlatest다.
- 그리고 다시 docker images
이러면 총 3개의 이미지가 보여진다.
-이렇게 이미지가 잇으면 이미지를 가지고 컨테이너를ㄻ 만들수있다.
내가 컨테이너를 만드려고 했는데 이미지가 없으면 다운을 받아야 한다.
]
- 삭제고 해볼게요. docker image rm nginx:14
도커가 리눅스에서 만든거라 명령이 다 리눅스명령이다 rm이 리무브다. ls는 리스트.
이런 이미지가 없다고 나온다. 태그가 틀렸기 땜ㄴ에.
그냥 nginx만 하든지 nginx:lates를 붙여주세요. 글머 삭제가 됩니다.
- 그리고 docker images
- docker image rm hello-world
얘도 그냥 엔터쳤더니 삭제가 안됐다.
컨테이넉 ㅏㅇ미지ㅣ를 쓰고있기 때문이다. 아까 컨테이너를 만들었기 때문에 얘를 강제로 지ㅜㅇㄹ수도 있는데.
컨테이너를 지우고 이미지르 ㄹ지우면 된다.
- docker ps -a
컨테이너한번 볼게요 그럼.
ps도 리눅스명령인데 프로세스를 보느 ㄴ명령이다.
- docker container rm 3536 앞에 3~4개만 하고 엔터친다.
- 그리고 docker ps-a로 다시한번 삭제한다.
컨테이너 아이디 이용해서 삭제할수도있고 이름을 ㅗ삭제할 수도 있다.
컨테이너 아이디는 앞에 일부만 쓰고 삭제할 수 있다.
- docker container rm bdia
엔터여러번
-docker ps -a하면 아무것도 없다.
- docker images 해서 다시 hello-world르 ㄹ삭제해보죠.
- docker image rm hello-world
삭제되었따.
docker images
삭제되었음을 볼수있따.
docker run nginx
-근데 이건 뭑 ㅏ안된다.
프롬포트로 나올수닥 없다. ctrl c로나온다.
백그라운드가 아니어서.
docker ps -a
남아있다.
docker container rm b78d
docker run -d nginx
이게 백그라운드에서 실행하게 하는 옵션이다.
이러면 컨테이너가 만들어지고 프롬포트로 나와진다.
docker ps
- ㄴㅅstatus가 up이다. 백그라운드인듯 이게.
- docker inspect 컨테이너아이디4개
지금 컨테이너가 동작하고 있다. ip?를 확인하기 위한 명령어다.
그럼 됙 ㅔㅁ낳은 내용이 출력이되는데. 맨 밑에 ipaddress가 있다. 172
이게 컨테이너으 ㅣㅇip다. 모든 시스템은 ip가 있다.
저 ip로 접속을 시도해본다.
- curl 172.17.0.2
welcome to nginx라고 뜬다.
이게 출력이 되어야 한다.
- 근데 여기서는 접속이 되는데 컨테이너 안에 접속을 외부에서 해야 한다.
현재는 이 버츄얼박스 이 시스템에서만 접속이 된다. 의미가 없다. 외부에 노출해서 서비스를 할 수 있어ㅑㅇ 하니가.
- docker ps
로 보고 삭제한다.
- docker container rm 컨테이너id4개
\왜 안지워지냐면 동작중이어서 컨테이너가 러닝중이어서 안지워짐.
강제로 지ㅜㅇ려면 -f
- docker container rm -f 컨테이너id 개
- docker run -d는 단순 실수다.
- docker run -d --name websvr1 -p 80:80 nginx
-d로 백그라운드동작시키고, 이름도 붙여준다.
-p로 안쪽의 포트하고 호스트 포트하고 연결해주는 옵션이다.
이말은 우분투의 80번에 접속하면 컨테이너에있는 80을 ㅗ연결시켜준다느거다. 포트포워딩이다.
그리고 nginx로 컨테이너를 생성하겠다.
nginx라는 이미지를 이용해서 websvr1dl이름으 ㅣ컨테이너를 만들건데 외부에서 접속할수있또록 포트포워딩을 했다.
- docker ps
하면 포트가 바뀌어있다.
- netstat -ntlp
그럼 80번 포트가 동작중이다.
이 포트를 멈춰볼게요.
- docker ps
이거먼저해보고
- docker stop 컨테이너아이디4개
컨테이넉 ㅏ멈추면 컨테이너 포트가 안보일거에요.
다시 netstat -ntlp하면요.
- docker start 컨테이너 4개
그럼다시 스타트해볼게요
remove는 아예삭제고 stop은 start로 다ㅣ시작할수있ㅇ다.
- 다시 netstat -ntlp하면 80이 떠있다.
- 브라우저에서 우리 우분투의 아이피를 작성한다.
이런식으로 nginx 페이지가 출력이된다ㅣ.
- 지금이게 웹서버 하나 만든거다. 금방 만들었다.
- vm으로하면 리눅스 설치해야하고 웹서버 다운받아서 동작시켜야 한다.
==========================
- docker pull httpd
좀전엔 nginx를 바당ㅆ고 이번에 ㄴ 아파치를 받는다.
nginx도 웹서버, 아파치도 웹서버다.
얘도 동작을 시켜본다.
- docker run -d --name websvr2 -p 80:80 httpd
하면 에러가난다. 왜 에러가 나냐면 앞에 80
이미 80번 포트가 동작중인데 또 쓰려고하면 충돌이 난다.
그럼? 다른 포트를 쓰면된다. 뒤의 컨테이너에있는 포트는 "똑같이 80이어도 상관이없다. 컨테이너는 별개니까.
근데 앞의 포트는 접속할때사용하는 포트는 다른포트를 써야한다.
- docker run -d --name websvr2 -p 81:80 httpd
이러면 컨테이너가 동작한다.
- docker ps
두개의 컨테이너가 80, 81번에서 nginx, 아파치가 동작하고 잇음을 볼 수 있따.
- 뒤에 :81을 붙이니 이런 페이지가 떴다.
- 컨테이너를 만들어서 바깥에 노출시켜야하니까 포트풔어딩을 해야한다.
왼쪽의 포트가 토울되는 포트다. 대신 내가 마음대로 바꿔쓸수있다.
물론 누구나 쓰게하려면 알려진 포트를 써야겠죠.
근데 우리만 쓸 서비스면 우리만 아는 포트를 써도 된다.
포트포워딩이다. 81번 포트가 오면 80으로. 80이 오면 80으로.
- 지금 서버가 2개가 있는거다.
- 만야 ㄱ컨테이너 안쓰고 두개의 웹서버를 쓰려면 vm이 두개가 필요한거다. 근데 직므은 되게 간단하다.
=========================
[3교시]
sign up 눌러서 구글 아이디로 가입한다.
- ip로 너무 많이 해서 안된다.
vpn을 쓴다.
- 크롬웹스토어에서 Free VPN for Chrome - Browsec VPN - Free VPN for Chrome를 추가한다.
- 오른쪽위 확장프로그램에서 그걸켜서 실행한다.
- 다시 들어가서 가입한다.
===
- hub.docker.com 오른쪽 상단의 프로필 아이콘을 클릭한다.
- Accounet settings를 클릭한다.
- Password가 있다. Reset password로 비밀번호를 바꾼다.
클라이어트에서 도커 로그인을할때 이 페스워드가 필요하다.
- 비밀번호 변경 링크가 메일로 온다.
123456789로 바꿨다.
○ docker login -u gdlsw
- 패스워드를 바꾸고 클라이언트 프로그램으로 로그인이 되는지 해본다.
- 다시 hub.docker.com으로 돌아온다.
- 상단의 Repositories를 클릭한다.
- Create a repository를 눌러서 저장소를 하나 만든다.
- 저장소 이름을 webapp으로 했다.
- 무료면 private은 하나만 만들 수 있다.
올릴때도 내려받을때도 비밀번호 인증을 해야 한다.
- public은 누구나 내려받을 수 있다.
- public으로 create를 눌러서 생성한다.
- 오른쪽에 Docker commands가 있다.
여기에 push하기 위해서는 자기아이디/저장소이름:태그네임 하라고 써있다.
- 이 명령어를 실행하면 그 이미지가 여기 저장소로 업로드가 된다.
- docker images
이건 다 다운받은거다. 그것들이 보여진다.
- docker ps
두개가 동작하고있는게 보여진다. 웹서버 1, 2가 있다.
- docker commit websvr1 gdlsw/webapp:1.0
컨테이너 안의 변경된 사항들을 반영시켜서 이미지로 만들겠단 얘기다.
내가 푸쉬할 내 아이디/저장소이름:그리고 태그 이렇게 붙이면 된다.
websvr1 컨테이너를 가지고 gdlsw/webapp:1.0라는 이름의 이미지를 만들겠단 얘기다.
- docker images
그럼 새로 만든게 보여진다.
어떤걸 다운받아서 컨테이너에 우리가 설정을 원하느대로 하고, 다시 이미지로 만든거다.
- nano index.html
nano 편집기로 index.html을 편집한다.
<h1> Docker Study Server </h1>하고 ctrl x, y 엔터로 저장.
- docker container cp index.html websvr2:/usr/local/apache2/htdocs
index.html 파일을 카피해서 이 websvr2 컨테이너의 이 디렉터리에 카피하라는 명령이다.
바깥에서 컨테이너 안쪽에다가 명령을 한거다. 그 컨테이너에 안들어가고.
- websvr1은 루트디렉토리가 여기가 아니다.
암튼 이렇게 두번째 웹서버 컨테이너의 내용을 바꿔서 이미지로 만들어본다.
-브라우저에서 정상적으로 복사가 됐는지를 확인한다.
-자기 리눅스 ip:81번으로 들어가면 아까는 위와 같았었다.
- 아래와 같이 안뜨면 크롬브라우저에 캐시가 있어서 그런거다.
엣지 등 다른 브라우저로 열면 Docker Study Server가 나온다.
================================================================
ㅁ container websvr2를 이미지로 만들기
- docker commit websvr2 gdlsw/webapp:apache
태그는 결국 분류학 ㅣ위한 것이다. 2.0하려다 이거함. 첫번째거는 1.0으로 했는데 이번엔 apache를 붙였다. apache 웹서버다.
- docker image ls
하나는 1.0, 한는 pache다 태ㅡㄱ가.
- 로그인된 상태여야한다. 아까 로그인했었다 구문으로(docker login -u 사용자이름)
- docker push gdlsw/webapp:1.0
- docker push gdlsw/webapp:apache
- 이러면 이미지가 올라갔다. 다른데서 다운받아서 컨테이너를 생성하면 똑같은 컨테이너가 생성되는 것이다.
================================================================
[4교시]
- (사진) 우분투가 있다. 도커를 설치해놨따. 여기에 컨테이너가 있다. websvr1, websvr2 두개의 컨테이너를 만들었다.
websvr1 (nginx)는 안건드렸고, websvr2(apache)의 index.html 복사해서 붙여넣기해서 내용이 바뀌었다.
첨엔 it works에서 dockert study로 바귀었다.
- 현재 동작중인 컨테이너를 그상태 그대로 이미지로 만든거다.
그 이미지 이름을 gdlsw/webapp:apache로 만든거다.
- 첫번째도 컨테이널를 이미지로 만들었었다. gdlsw/webapp:1.0이라는 이름의 이미지로.
- 이게 컨테이너 가지고 만든 이미지다.
근데왜 이름을 이렇게 붙였냐면 내 저장소에 push하기 위해서 내저장소의 아이디와 내 저장소 이름이 같아야먄 업로드가 된다.
두 개 업로드 했다. push해놨다.
- 왜 push하냐. 올라가있는 이미지는 이제 어디에서든지 pull로 다운받을 수 있다.
이 이미지들을 다른 시스템에서 다운받았다. 도커가 설치되어 있는 시스템에서.
그리고 컨테이너를 생성하게 되면 그 컨테이너는 아파치 웹서버가 동작하고 있는 상태에서 우리가 바꾸어놓은 docker study server가 들어가있느 ㄴ상태로 동작하게 된다.
- 더확장해서 얘기해보면 이 컨테이너에다가 윌가 만든 웹어플리케이션을 설치해서 동작시킨다.
그상태로 이미지를 뜨면 그 이미지를 가지고 어디에서든지 컨테이너를 만들면 어디에서든지 똑같으 ㄴ상태로 만들어진다. 접속해서 사용할 수 있다.
- 만약 컨테이너를 안쓰면 이 환경을 그대로 만들어줘야 한다. 매번.
근데 컨테이너를 쓰면 그 환경이 저장되어있는 상태로 이미지가 만들어진거다.
- docker ps
둘 다 컨테이너를 삭제해보겠습니다.
- docker container rm websvr1
이름을줬기때문에 이름을주는게 더 편하다 컨테이너 아이디보다.
동작중이라 삭제가 안된다. 강제로 삭제하렴녀
-docker container rm -f websvr1
-docker container rm -f websvr2
- docker ps
이건잘못쓴듯? 필없는데
- docker images
이미지도 삭제한다.
-docker image rm a
이미지 아이디를 어디까지 써야하느냐. 유일한 그거까지. 지금은 a만 입력해도 된다.
- docker image rm 7
다른것도 지웠다.
- docker images
이러면 다지워졌다. 다른시스템에 docker만 설치되어있는 상태다.
- docker run -d --name webapp1 -p 88:80 gdlsw/webapp:apache
내 저장소에있는 이 아파치 태그명으로된 이미지를 webapp1이라는 일므으로 컨테이너를 만들어라.
근데 만들때 포트포워딩을 할건데 외부에서 접속할때 포트번호는 88, 내부 컨테이너 포트번호는 80이다.
그리고 -d로 백ㄹ그라운드에서 동작시켜라.
근데 이미지가 없죠. 글머 docker hub에서 다운받으면서 동작시킨다.
- 그럼이제 88으로 접속해서 docekr sudy serer가 나오는지 본다.
=====================
이제 점시먹기전까지 오라클을 설치해본다.
- docker images
하면 아까 다운받은 이미지가 gvenzl/oracle0-xe 태그 111이 있다.
- docker search oracle-xe-11
여기에 많이있는데 여기서 다운받아서 써도된다.
- docker image ls
아까 다운받ㄴ은걸 쓰겠다.
- docker run -d --name oracle11g -e ORACLE_PASSWORD=1234 -p 1521:1521 gvenzl/oracle-xe:11
-p는 포트포워딩이다. 다른걸써도 되는데 굳이 바꿀필욘없다.
저건 시스템패스워드다.
이럼 오랔르 설치가 된거다.
컨테이너를 안씀녀 오라클을 이렇게 간단히 설치할수가 없겠쬬.
= docker ps
보면 오라클이 정상적을 ㅗ동작하고 있다.
- docker logs -f oracle11g
오랔르이 잘 되고있느지 확인한다.
f는 출력된걸 다보겠딴 ㅇ"ㅒ기다.
에러난다. ctrl c로나온다.
- sudo service oracle-xe stop
어제 오라클 11한게 있어서 에러난다. 스톱한다.
- docker ps -a
이거하면 아까 만들었는데 포트때ㅑ매 시작이 안된게 보인다. oracle11gㄱ ㅏ보인다.
- docker start oracle11g
그러고 나서 확인해보세요
- docker ps
그럼 접속을 해보죠. sql developer에서
system은 아무거나쓰면 안된다. 비번도 아까 1234로 설정했다.
- 일므은 그냥 docker라고 썼다.
- 이제 여기다가 테이블을 만들면 되죠.
- create user admin identified by 1234;
grant connect, resource to admin;
- 그리고 새접속으로 왼쪽에서 docker 아까 만든걸 클릭한다.
사용자 이름 admin, 비번 1234만 입력하고 테스트눌러본다. 그럼 성공이 뜬다.
- 접속누름녀 이미 사용된이름이라고쓰는데 그냥 yese했따.
- 오라클 11g 컨테이너를 만들어서 시스템접속으로 들어간다음에 사용자 하나만들고 그 사용자엑 ㅔ권한을 부여한거다.
- 우리가 저번에 할때는 마리아 디비에했다. 이거는 오라클에다가. 디비만 다른거지 똑같은데 약간 수정이 필요한거다.
- guestbook을 저기에 올렸다. 소스코드를 올린거다
그리고 ls하면 보여진다.
그리고 unzip guestbook.zip했다
그리고 ls. 보여진다.
그리고 cd guestbook
그리고 ls
- ftp에서 appicationp.proereti랑 pom.xml을 가져왔다.
- pom.xml은 수정안했다.
- application.proeprier는 수정한다.
- localhost를 내 주소로.
유저네임을 scott에서 admin으로.
- 점심먹고나서 수정하고 빌드하고 애플리케이션이 정상적으로 동작하는지 확인하고 ㅣ지금 디비가 컨테이너에 올라가있는데 웹어플리케이션도 컨테이너로 만들거다.
=====================================================================
[5교시]
- application.properties를 저장하고, pom.xml을 수정안한상태다.
그냥 먼저 넣고 nano로 편집해도 되긴한ㄷ다.
- 리프레시하면 guestbook폴더가 생겼다.
- 기존의 pom.xml은 지우고 새 pom.xml을 넣었다.
- 그리고 source/main/resoucreces에서 applicaito 기존걸 지우고 넣었다.
- 이제 빌드한다.
빌드하기전에 jdk를 설치해야한다.
- sudo apt install openjdk-17-jdk
VirtualBox 우분투에 jdk17 설치
- chmod u+x mvnw
mvnw 파일에 실행권한 부여
- ./mvnw clean package
메이븐 빌드
이거는 전에 wsl에 한거랑 똑같다. 어 오류났다.
- pom.xml을 다시 ftp로 받았음.
- 그리고 ./mvnw clean package
근데 또 오류
dependency가 중복으로 추가되서 그렇다.
- cd
홈으로 이동
- cd guestbook
여기로 이동
- ls
파일 확인
- nano pom.xml
pom.xml을 수정한다.
- pom.xml에 ojdbc11 부분 dependency를 추가한 듯.
- pom.xml2라는 이름으로 ftp에 올리신걸 받아서 pom.xml로 이름을 바꾸고 넣었다.
- ./mvnw clean package
빌드했다. jar 파일을 만들었다.
○ ls target
- 현재 디렉터리에서 target/ 디렉터리의 내용을 나열한다.
- 그럼 jar파일이 보인다.
○ java -jar target/guestbook-0.0.1-SNAPSHOT.jar
- 아까 application에서 따로 서버포트를 지정하지 않았다. 8080포트다.
그러니까 그냥 이렇게 쓰면 된다.
- 이러면 설치가 되었다. 아까 컨테이너에 설치한 오라클에 연결된거다.
따로 디비설치안했다. 컨테이너 안에 있는 오라클ㅇ ㅔㅇ녀결된거다.
- 근데 된게아니라 에러난다.
- 아까 guestbook이라는 소스가 마리아디비로 소스가 만들어져있다.
마리아디비는 동작할때 테이블이 만들어진다.
근데 우리는 오라클한다. 오랔르은 먼저 테이블을 만들어놓고 해야한다.
- 어제 마리아디비로 연결했었는데 오라클ㄹ ㅗ바꿨다.
디비를 바꾸면 연결하는 설정들을 바꿔줄게있다. 오라클에 테이블 만들었따.
그리고 애프릴케이션프로퍼티스에 설정 바꿨다.
- 그리고 pom.xml에 ojdbc를 추가했다. 이러면 마리아디비나 오라클이나 똑같다는 거다.
디비가 달라지면 연결하는 방식이 설정들이 좀씩 다른걷.
CREATE TABLE post (
id NUMBER PRIMARY KEY,
name VARCHAR2(40) ,
writeDate VARCHAR2(100) ,
content VARCHAR2(400) ,
attachedFile varchar2(250)
);
CREATE SEQUENCE user_seq
START WITH 1
INCREMENT BY 1
NOMAXVALUE
NOCYCLE
NOCACHE;
CREATE OR REPLACE TRIGGER user_trg
BEFORE INSERT ON post
FOR EACH ROW
BEGIN
SELECT user_seq.nextval INTO :NEW.id FROM dual;
END;
- 이렇게 오라클에 생성시켜놨따.
○ cd src/main/resources
○ ls
○ rm data.sql schema.sql
- 이 두 파일을 지운다.
- 테이블만들어주는 마리아디비용 스크립트를 삭제했다.
- 샘플예제니까 스크립트를 이렇게 한거지 실제로는 테이블을 미림나들어놓은ㄴ걸 올릴거라 이럴 일은 없을거다.
○ ls
- 지워져있다.
○ java -jar target/guestbook-0.0.1-SNAPSHOT.jar
- 실행한다
- http://192.168.10.143:8080/를 입력하면 접속된다.
'배포 > Docker' 카테고리의 다른 글
4. Dockerfile (2) | 2024.12.09 |
---|---|
3. (1) | 2024.12.09 |
2. 이미지파일 다운&업로드 (1) | 2024.12.09 |
1. Docker 설명 (0) | 2024.12.08 |
10. Docker 설명 (3) | 2024.12.06 |