docker - nginx, nextjs 같이 구동.

sangwoo noh·2023년 6월 16일
0

Docker

목록 보기
21/22
post-custom-banner

(작성중...)

네트워크 생성

  • docker network create
    도커는 각 컨테이너별로 네트워크가 각각 독립적으로 구성되기 때문에 서로 통용되는 하나의 네트워크망을 구성해야한다.
$ docker network create mynetwork
$ docker network ls  // 모든 network 리스트 확인
$ docker inspect mynetwork // 위에서 만든 mynetwork의 스펙을 자세하게 보기

기본 컨테이너 생성

  • 네트워크 옵션을 주지 않는다면 기본 네트워크인 bridge네트워크에 붙게 된다.
    $ docker run -itd --name sec_project <이미지이름>

기존에 존재하는 컨테이너를 연결하는 방법

$ docker network connect <네트워크이름> <존재하는 프로젝트이름>
$ docker network connect mynetwork project

연결된 네트워크를 해제하는 방법

  • 최초에 네트워크를 연결하지 않은상태의 컨테이너는 기본 네트워크인 bridge네트워크에 연결되어있습니다.
  • 컨테이너는 여러개의 네트워크에 연결될 수 있습니다.
$ docker network disconnect bridge project

새로 컨테이너를 만들때 네트워크에 연결하는 방법

 $ docker run -itd --name sec_project --network mynetwork <이미지이름>

같은 네트워크 안에서 핑테스트

  • 컨테이너명얼 alias로 지정하여 사용할 수 있다.
$ docker exec project ping sec_project
PING two (172.19.0.3): 56 data bytes
64 bytes from 172.19.0.3: seq=0 ttl=64 time=0.119 ms
64 bytes from 172.19.0.3: seq=1 ttl=64 time=0.105 ms
64 bytes from 172.19.0.3: seq=2 ttl=64 time=0.116 ms
64 bytes from 172.19.0.3: seq=3 ttl=64 time=0.883 ms
64 bytes from 172.19.0.3: seq=4 ttl=64 time=0.127 ms

issues

  • OCI runtime exec failed: exec failed: unable to start container process: exec: "ping": executable file not found in $PATH: unknown

    ping utill이 설치 안되서 그럼
// 설치 방법 
$ apt-get update
$ apt-get install inetutils-ping

docker - react

nginx 구동

$ docker run -d --network mynetwork --name webserver -p 80:80 -p 443:443 -p 4000:4000 -p 8000:8000 nginx:latest
  • 80과 443만 필요하지만 테스트용으로 만듬.

  • 4000번 포트에 테스트
    upstream react1 {
    server react-app:3000;
    }

server {
listen 4000;
listen [::]:4000;
server_name localhost;

location / {
    proxy_pass http://react1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

}

잘 됐다면...

실 예시

  • 이런 느낌으로 진행하면 됨.
// default.conf
server {
    listen 80;
    listen [::]:80;
    return 308 https://$host$request_uri;
}

// ssl.conf
upstream react3 {
    server react-app:3000;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name nohsangwoossltest.com;

    # ssl on
    ssl_certificate /root/ssl/nginx-ssl.crt;
    ssl_certificate_key /root/ssl/nginx-ssl.key;

    location / {
        proxy_pass http://react3;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
profile
하기로 했으면 하자
post-custom-banner

0개의 댓글