728x90
반응형
728x90
반응형
반응형

환경: windows11, springboot2.7.6, java17

 

2024.02.18 - [서버 세팅 & tool/docker] - [windows] gateway server 세팅, docker 배포

2024.02.04 - [서버 세팅 & tool/kafka] - [windows] kakfa connect; mariadb 설치

 

마리아 DB는 프로젝트가 아니기 때문에 별도 폴더를 만들고 그 안에서 Dockerfile과 필요한 폴더 생성

기존에 로컬에서 작업 시 생성했던 쿼리를 그대로 도커에 올릴 예정

그러려면 로컬에 마리아 디비 설치 경로와, 해당 쿼리 파일이 있는 곳을 파악해야 함

 

로컬 디비 작업 파일 복사

  • 아래와 같은 방식대로 했을 때 잘 진행되지 않음.. 해결방법은 별도로 작성
C:\Program Files\MariaDB 11.2\data

해당 경로로 가서 아래 내용 확인

 

 data 폴더를 그대로 복사

도커 파일 작성

FROM mariadb
ENV MYSQL_ROOT_PASSWORD test1357
ENV MYSQL_DATABASE mydb
COPY ./mysql_data/data /var/lib/mysql
EXPOSE 3306
ENTRYPOINT ["mysqld"]

에러 발생

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "mysqld": executable file not found in $PATH: unknown.

 

다른 방식으로 진행

버전 관련 문제인 듯하여 로컬에서 만들어진 데이터 베이스를 쿼리로 덤프 떠서 그걸 사용하는 방식으로 전환

1. cmd를 관리자 모드로 열기

2. 아래 명령어 실행

 

3. 해당 경로에 mydb.sql 생성 확인

 

4. 해당 파일을 Dockerfile 이 있는 경로에 옮기 도커 파일 수정

FROM mariadb
ENV MYSQL_ROOT_PASSWORD test1357
ENV MYSQL_DATABASE mydb
COPY ./mydb.sql /docker-entrypoint-initdb.d/
EXPOSE 3306

 

5. 도커 빌드 & 실행

docker build -t haileyjhbang/my-mariadb:1.0 . 
docker run -d -p 3306:3306  --network ecommerce-network --name mariadb haileyjhbang/my-mariadb:1.0

 

6. 도커 로그 확인

docker logs 컨테이너id

 

7. 도커 이미지 삭제

잘못 만들어진 이미지들을 지우기 위해서는 아래 명령어 사용

docker rmi  컨테이너id

 

8. 도커의 mariaDB에 접속하여 권한 등 확인

 docker exec -it mariadb bin/bash
 // 도커 안, 디비에 붙으면
 mariadb -h127.0.0.1 -uroot -p
 // 디비 접속
 //127.0.0.1 is not allowed to connect to ~sever 라는 에러가 뜨면 localhost로 시도

grant all privileges on *.* to 'root'@'%' identified by 'test1357';
//           모든 데이터베이스의 root라는 계정에 ip address 허용
flush privileges;
// 내용 반영

 

기타 명령어들로 mydb 데이터베이스 안 테이블/데이터가 덤프뜬대로 잘 나오는 것도 확인 가능 

728x90
반응형
반응형

환경: windows11, springboot2.7.6, java17

 

2024.02.12 - [서버 세팅 & tool/docker] - [windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅

2024.02.18 - [서버 세팅 & tool/docker] - [windows] discovery server 세팅, docker 배포

 

gateway service를 도커에 배포하기

1. Dockerfile 생성

FROM openjdk:17-ea-slim-buster
VOLUME /tmp
COPY target/gateway-service-1.0.jar gateway-service.jar
ENTRYPOINT ["java", "-jar", "gateway-service.jar"]

 

2. 도커이미지 생성

 mvn clean compile package -DskipTests=true
 docker build -t haileyjhbang/gateway-service:1.0 .  //도커이미지생성

도커 이미지 생성 확인 

 

3. 레파지토리 푸시

도커 이미지를 허브 사이트에 올려보기

docker push haileyjhbang/gateway-service:1.0

 

4. 도커 실행

gateway server 서버는 유레카, rabbitmq 등 타 서버에 의존적이고 해당 정보는 도커에서는 다르게 적용되어야 하므로 실행 시 정보 추가 필요

docker run -d -p 8000:8000 --network ecommerce-network \
 -e "spring.cloud.config.uri=http://config-service:8888" \
 -e "spring.rabbitmq.host=rabbitmq" \
 -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \
 --name gateway-service \
 haileyjhbang/gateway-service:1.0

 

5. 상태 확인

 docker ps -a

네트워크 확인 

 docker network inspect ecommerce-network

로그 확인

 docker logs gateway-service

유레카 연결 확인

해당 status를 클릭해 보면 이상한 호스트명이 적혀있는 것을 볼 수 있는데

해당 값은 컨테이너 아이디로 같은 네트워크에 묶여있을 때는 ip뿐만 아니라 컨테이너 ID나 컨테이너 이름으로 접근 가능하다.

728x90
반응형
반응형

환경: windows11, springboot2.7.6, java17

 

2024.02.12 - [서버 세팅 & tool/docker] - [windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅

 

[windows] 네트워크 세팅, rabbitmq 세팅, config server 세팅

환경: windows11, springboot2.7.6, java17 2024.02.10 - [서버 세팅 & tool/docker] - [windows] docker 이미지 만들고 올리고 실행 [windows] docker 이미지 만들고 올리고 실행 환경: windows11, 아래 설치 진행 2024.02.10 - [서버

bangpurin.tistory.com

 

eureka discovery service를 도커에 배포하기

1. Dockerfile 생성

FROM openjdk:17-ea-slim-buster
VOLUME /tmp
COPY target/discoveryservice-1.0.jar discoveryservice.jar
ENTRYPOINT ["java", "-jar", "discoveryservice.jar"]

 

2. 도커이미지 생성

 mvn clean compile package -DskipTests=true
 docker build -t haileyjhbang/discovery-service:1.0 .  //도커이미지생성

도커 이미지 생성 확인 

 

3. 레파지토리 푸시

도커 이미지를 허브 사이트에 올려보기

docker push haileyjhbang/discovery-service:1.0

 

4. 도커 실행

해당 config server 정보는 도커에서는 다르게 적용되어야 하므로 실행 시 정보 추가 필요

docker run -d -p 8761:8761 --network ecommerce-network \
 -e "spring.cloud.config.uri=http://config-service:8888" \
 --name discovery-service haileyjhbang/discovery-service:1.0
 //포트 포워딩; 네트워크 설정
 //설정 추가; 같은 네트워크로 묶여있기 때문에 컨테이너 이름을 명시해도 문제없음
 //네임, 이미지 이름 명시

 

5. 상태 확인 및 추가 기동

4번처럼 실행하고 도커 상태를 보면 다른 것들은 죽어있는 상태

네트워크 상태를 봐도 죽어있음

docker network inspect ecommerce-network

 

그래서 아래처럼 추가 기동 해줌

다시 상태를 확인해 보면 다 떠있음 

로컬에서 유레카 확인

728x90
반응형
반응형

목표: vm에 jar을 배포한다. jar 이 정상 실행되려면 보안상의 이유로 host의 ip를 사용해야한다. jar이 정상 실행되면 host에서 vm의 api를 쏠 수 있어야 한다.

 

1. NAT 방식

2022.01.03 - [세팅/vm on mac] - [vm] virtual box 네트워크 NAT 설정 - mac

 

[vm] virtual box 네트워크 NAT 설정 - mac

목표: mac os 에서 virtual box 로 centos 7을 깔고, centos에서 out 되는 ip를 로컬과 동일하게 설정 ​ 1. mac > 설정 > 공유 > 원격 로그인 on 2. virtual box > 파일 > 호스트 네트워크 관리자 - 1번에서 확..

bangpurin.tistory.com

호스트의 ip를 게스트가 그대로 사용하는 방식으로 vm 내부의 jar가 정상작동한다. 하지만 host -> vm로 api shoot이 안된다. 

포트 포워딩으로 jar의 port를 설정해주었지만 telnet 은 되고 curl을 할 경우 connection reset으로 response 를 받아오지 못한다.

포트 포워딩으로 해결할 수 있을 것 같아 계속 보고있다ㅠㅠ

-> 포트 포워딩 설정에는 문제가 없었다!! 게스트에서 방화벽 정책 끄니까 된다...

systemctl status firewalld  //상태 확인
systemctl stop firewalld    //종료

 

2. Bridge adaptor

2022.01.12 - [세팅/vm on mac] - [vm] virtual box 브릿지 네트워크 설정

 

[vm] virtual box 브릿지 네트워크 설정

virtual box에서 아래와 같이 설정한다. vm을 고정 IP로 지정하기 위해서 아래와 같이 세팅한다. 1. 우선 맥북(호스트)의 ip 확인 > 192.168.35.xx였다 ifconfig 2. linux(게스트)에서 고정 ip 설정 cd /etc/sysc..

bangpurin.tistory.com

게스트에 별도 ip를 할당받아 보안정책에 의해 jar 실행이 되지 않는다.


참고 - 네트워크 개념 팍팍팍..

https://www.nakivo.com/blog/virtualbox-network-setting-guide/

728x90
반응형

+ Recent posts