[Docker]

sung eon·2023년 2월 23일
0

| 도커 컨테이너

포트포워딩

192.168.0.37 - 실제 IP
포트는 같은 프로토콜내에서 중복번호 사용이 불가능하다.

  • 도커로 제공될 때는 어떤 포트로 포워딩해서 접근할거냐하면 다른 포트번호로 접근할거다.
    • 예) 포트를 가상화시켜서 실제 처리를하는건 #1521이지만, 도커 컨테이너 외부(회색부분밖)에서는 #9000, #8000으로 보이게한다.


A로 8081로 요청해서 사용하다가 DB를 사용하려고했을 때 이 도커 컨테이너에 올라와있는 #8000번을 사용하고 싶다 + 경우에 따라서 도커 컨테이너 밖에있는 DB인 #1521도 사용하고싶다면
8081에 서비스 되고있던걸 A입장에서 같이 도커 컨테이너에 서비스되고있는 #1521인 #8000을 사용할 수 있을까?
-> 없다. 각각 별개의 서비스이고, 가상화된 OS이기 때문에 회색바탕인 가상 도커 컨테이너이기 떄문에 이 안에 서비스되는 어플리케이션은 각각의 다른 서비스이기 떄문에 불가능하다.

  • 따라서 #8000포트를 사용할 수 없다.
    • 쓸 수 있도록 하려면 같은 네트워크 그룹으로 묶어줘야한다.
      같은 네트워크안에 오라클과 어플리케이션이 묶어줘야함
      • 가상 IP 171.0.0.1, 172.0.0.2를 받았을 때 같은 네트워크 (도커 내부)에 있기 때문에 외부에서 식별하기 위한 #8000이 아니라 내부 포트번호인 #1521을 적어줘야한다.
        jdbc:oracle:thin:@1720.0.2:8000:xe:1521


만약 172.0... 이런식으로 사용안하고 a / ca / cu / o1 / o2 등 컨테이너 이름을 붙여 사용한다고 하면 requestTemplate.getForObject("http://ca:8082") 처럼 사용가능하다.
즉, A가 o1,o2에게 접근할 때 IP대신 이름으로 사용가능


프로젝트 만드는 순서

  1. 스프링부트 어플리케이션 작성
  2. Junit 단위테스트
  3. Maven Project Build -> jar 압축파일만들어짐
    3.5 도커파일 만들기
  4. 도커 이미지 생성 docker build --help로 명령어 가이드 보기
    docker build : 이미지 생성
    docker build 어떤프로젝트에대한 이미지인지 이름으로 버전관리
    build -t 이름 .
    .은 현재경로
    예) docker build -t catalog:one .
    docker images로 만들어진 이미지 확인
  5. (도커에서) 이미지에 해당하는 실행될 컨테이너 프로세스
    docker network create testnetwork
  6. 도커 컨테이너 프로세스 시작
    docker run -d --name catalog1 --network testnetwork -p9001:8081 catalog:one
    -> 도커 컨테이너 구동 되어있어야한다
    명령어 옵션
    run: 도커 컨테이너를 생성과 시작을 같이 할 수 있다.
    -d: 데몬, 안주면 로그들 모두 다 봐야한다. 로그를 안보려면 필수
    --name: 컨테이너 이름 지정
    --network: 어떤 네트워크에 연결시킬지
    -p포트넘버: 외부에서는 9001 실제 포트번호는 8081(포트이름을 넣어줘도된다.)를 명시
    이미지하나에 컨테이너 여러개 만들기 가능
    같은 이미지에 해당하는 여러서비스 등록가능 리본으로 로드밸런싱도 가능하다. 명절이나 몰리는 시기에는 서비스,즉 컨테이너를 원래 한개만 사용하다가 여러개를 만들어 놓게된다.

4,5,6 번이 제대로 되기 위해서는 도커파일이 필요하고, 프로젝트 경로에 넣어주면 된다.
ARG 명령어로 변수 만듦
COPY 복제본

명령어)
이미지 생성
이미지 제거
프로세스 생성
프로세스 제거
프로세스 시작
프로세스 종료

네트워크 생성
네트워크에서 컨테이너 프로세스 넣기
네트워크에서 컨테이너 프로세스 삭제


  1. maven build 로 빌드.
  • 명령어는 package (소문자로!!!)


참고자료

profile
코베베

0개의 댓글