👉 Docker 네트워크 개념 간단정리
공유기는 두개의 아이피를 갖는다.
공인 아이피 : 50.20.20.20
사설 아이피: 192.168.0.1
설명
- 3번의 컴퓨터에서 192.168.0.4 로 요청을 하면, 그 요청은 공유기 까지 갔다가 자신을 찾게 된다.
- 3번의 컴퓨터에서 50.20.20.20:8003 같은 형식으로 포트포워딩을 한다면 해당 요청은 공유기 바깥 세상을 나가서 다시 되돌온다. → 비효율적
- Docekr는 3번의 PC에서 설치가 되면 그 OS 내부에서 Docker만의 사설 네트워크를 갖는다.
- Docker의 사설 네트워크는 보통 172.17.0.1 을 사용하게 된다.
Docker 세상은 OS안에 있다.
Docekr 세상의 사설 네트워크는 172.17.0.1 세상으로 돌아간다.
172.17.0.1:8004 로 포트포워딩을 해서 LB를 찾을 수 있다.
또는 172.17.0.4:80으로도 LB를 찾을 수 있다.👉 프록시 패스
서버는 XSS공격 때문에, 자바스크립트 요청을 허용하지 않는다.
대신 Lobby 서버로 ajax나 자바스크립트 요청을 할 수 있는데,
실제 서버에서 LB서버의 요청을 허용하는 작업을 CORS설정이다.

생활코딩 리버스 프록시 꼭 보기!!
👉 ex07
폴더 구조
🔹 mySQL 환경변수를 도커파일에 설정하기
세팅할 때 MySQL은 환경변수를 확인해서 세팅을 해준다.
MySQL이 세팅이 될 때, 무조건 ENTRYPOINT를 건들게 되는데,
여기다가 초기세팅이 필요한 쿼리를 넣어두면 만들어준다.
MySQL에서 사용할 수 있는 도커환경변수는 여기에 정리 되어있다.
도커파일 db 세팅
init.sql
db로 빌드 해보자.
docker images로 확인docker run -dit db bash로 해당 이미지 실행docker exec -it ac56 bash해당 이미지 접속mysql version도 확인이 가능하다.
mySQL 이렇게 접속이 가능하다.
—→ 접속 안됨 다시 지우고 다시 해보자.
🔹 다 지우고 새로 빌드 해보자.
이거 넣고 다시 빌드 하자. 컨테이너 이미지 다삭제하고 다시 해보자.
db안의 도커파일을 굽는다.
여기서 CMD랑 ENTRYPOINT는 여기서 실행되는 것이 아니라.
RUN할 때 실행 되는 것.
이미지 실행
아마 엔트리 포인트
🔹 mySQL로 들어가보자.
아이피는 로컬 호스트 : 127.0.0.1
포트 : 3308
아이디랑 패스워드는 도커파일에서 확인
DB접속해보면 생성이 된 것이 확인이 가능하다.
이미 다른 터미널이 돌고 있으니까,
같은 ps를 bash로 접근 해보자.
🔹 터미널에서도 mysql로 접근이 가능하다.
bash로도 mysql 접근이 가능하다.
mysql -u root -p
여기서 enter password에서 아무반응이 없는 것 처럼 보이는데, 비밀번호 입력이 되고 있으니 정확하게 타이핑해서 넣자.
여기선 root1234비밀번호가 맞으면 격한 환영해준다.
🔹 mysql bash 명령어 테스트
show databases;
데이터 베이스 목록을 볼 수 있다. use blogdb;
명령어로 database를 활성화한다. show tables;
describe 테이블을 설명해라 이뜻
👉서버 도커파일
🔹 Dockerfile 작성
JavaScript
FROM openjdk:11-jdk-slim
RUN apt-get update
RUN apt-get install -y git
WORKDIR /app
COPY ./entrypoint.sh ./entrypoint.sh
RUN ["chmod", "+x", "entrypoint.sh"]
ENTRYPOINT ["/bin/bash", "./entrypoint.sh"]도커 파일 설정을 위와 같이 해준다.
🔹 entrypoint 작성
JavaScript
git clone https://github.com/busanuv/blog-last.git
cd blog-last
chmod +x gradlew
./gradlew build
chmod +x build/libs/*.jar
java -jar -Dspring.profiles.active=docker build/libs/*.jar