일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- C++
- C
- 주식
- 알고리즘공부
- 독후감
- 책을알려주는남자
- 다독
- algorithmTest
- 자바스크립트
- 성분
- 백준알고리즘
- 프로그래밍언어
- 책알남
- 돈
- 알고리즘트레이닝
- 재테크
- 채권
- algorithmtraining
- 프로그래머스 알고리즘 공부
- 화장품
- algorithmStudy
- 독서
- 지혜를가진흑곰
- 경제
- 자바
- JavaScript
- 서평
- Java
- 알고리즘 공부
- 투자
- Today
- Total
탁월함은 어떻게 나오는가?
[AWS] EC2안에 도커를 설치한 후 posgresql와 프로젝트를 네트워크로 연결시켜서 사용하는 방법 본문
[AWS] EC2안에 도커를 설치한 후 posgresql와 프로젝트를 네트워크로 연결시켜서 사용하는 방법
Snow-ball 2023. 11. 28. 21:13EC2안에 프로젝트와 데이터베이스를 함께 사용하기 위한 작업이다.
이 글은 프로젝트와 프로젝트 내에 도커 셋팅은 되어 있다는 가정하에 진행한다.
아직 안되어있다면 세팅하고 따라가는걸 추천한다.
첫째. 현재는 [ docker ps ] 명령어를 치면 아무것도 생성되어 있지 않다.
우선, 데이터베이스와 프로젝트가 서로 통신이 되기 위해서는 network가 필요하다.
ec2를 만들고 나서 [ docker network ls ] 를 입력하면 아래와 같이 3가지의 네트워크가 기본적으로 생성되어 있다.
그리고나서 확인을 해본 후 내가 사용할 네트워크를 생성해보자.
[ docker network create connet-net ] 을 입력하면 connet-net 이라는 이름의 네트워크가 생성된다.
그리고 나서 다시 [ docker network ls ] 를 입력하면 아래처럼 생성된 걸 확인할 수 있다.
DRIVER의 경우는 지정하지 않으면 default: bridge로 되어 있는데, bridge로 사용하면 되기 때문에 그대로 진행한다.
DRIVER는 bridge가 많이 사용된다고 하지만, 나머지들에 대해서도 알아놔보자.
1) bridge: 기본 네트워크 드라이버로, 동일 호스트 내 컨테이너 간 통신에 적합하다.
- 여기서 "호스트"라는 표현에 대해서 설명이 필요할 것 같다. 도커에서 호스트는 컨테이너를 실행하는 기본 시스템을 가리키며, "동일 호스트 내" 컨테이너라 함은 같은 서버 또는 물리적 기계에서 실행되는 컨테이너를 의미한다. 이 컨테이너들은 같은 네트워크 리소스와 환경을 공유할 수 있다. 예를 들어, bridge 네트워크 드라이버를 사용한다면, 같은 호스트 내의 컨테이너들은 서로 통신할 수 있지만 외부 네트워크와는 분리될 수 있다.
2) host: 컨테이너와 Docker 호스트 간의 네트워크 격리를 제거하고 호스트의 네트워킹을 직접 사용한다.
3) overlay: 여러 Docker 데몬을 서로 연결하고 다른 호스트에 있는 컨테이너 간 통신을 가능하게 한다.
4) ipvlan: IPv4와 IPv6 주소 제어를 사용자에게 제공하며, 언더레이 네트워크 통합에 유용하다.
5) macvlan: 컨테이너가 자신의 MAC 주소를 가진 네트워크상의 물리적 장치처럼 보이게 한다.
6) none: 컨테이너를 완전히 네트워크로부터 격리시켜 접근 불가능하게 한다.
7) 재3자 플러그인: Docker를 특수한 네트워크 스택과 통합할 수 있게 한다.
둘째. 네트워크를 설정해놨으니 데이터베이스(postgersql)를 설치하면서 network도 연결하자.
명령어는 아래와 같다.
1
|
docker run -itd --network connect-net --name 디비이름 -p 5432:5432 -e POSTGRES_USER=디비유저이름 -e POSTGRES_PASSWORD=디비비번 -e POSTGRES_DB=디비기본이름 --restart always postgres:14.8-alpine
|
cs |
--itd : 컨테이너를 분리모드('-d')로 실행하면서 가상 TTY('-it')를 할당한다.
--network connect-net : 'connect-net'이라는 사용자 정의 네트워크에 컨테이너를 연결한다.
--restart always : 컨테이너가 명시적으로 중지되지 않는 한 항상 재시작하도록 설정한다.
그리고 나서 [ docker ps ]를 하면 실행중인걸 확인 할 수 있다.
그렇다면, 네트워크에도 제대로 연결됬는지 확인해보자.
[ docker network inspect connect-net ] 을 입력해보자.
그러면 Containers > Name: "psqldb"를 확인해볼 수 있다. 그렇다면 의도한대로 적용이 된 것이다.
셋째. 네트워크와 데이터베이스를 연결해놓았다면, 이제는 프로젝트를 push 를 해주면된다. 그리고 push 후 [docker ps ] 를 입력하면 두개가 떠있다.
'[Snow-ball]프로그래밍(컴퓨터) > 여러가지' 카테고리의 다른 글
도커 이미지, 컨테이너 캐쉬 한 방에 삭제하는 명령어 (0) | 2024.01.10 |
---|---|
구글 OTP 2FA 인증 방법 구현과 TOTP 원리에 대해서 공부해보자 (node.js, react) (0) | 2023.12.09 |
[AWS] EC2 생성 후 리눅스 업데이트 및 도커 설치 및 실행 방법 (0) | 2023.11.24 |
http 백엔드와 https 프론트 서버 통신에 대한 고민 (2) | 2023.11.22 |
Mac iTerm 사용시 oh-my-zsh 수동 업데이트 방법 (0) | 2023.10.04 |