Docker&Container 7

Docker&Container - Network 2. 컨테이너간 통신

컨테이너간 통신네트워크 생성터미널docker network create 작명ex) docker network create mynet1명령어docker network: 모든 명령어 조회docker network ls: 실행 중인 네트워크터미널에 컨테이너 넣기실행 중인 컨테이너를 넣는 방법도 있지만이미지 생성 시 해당 네트워크에 바로 넣는 방법을 배우고자 함 (더 편리)터미널docker run -d -p 포트 —network 네트워크 —name 작명 실행이미지:태그ex) docker run -d -p 80:80 —network mynet1 —name nginx-container nginx:1 (nginx)ex) docker run -d -p 8080:8080 —network mynet1 —name serve..

Docker&Container 2024.12.15

Docker&Container - Network 1. nginx 만들기

nginx 만들기컨테이너 간 통신하는 방법Reverse Proxy서버로 들어오는 요청 가로채는 프로그램Web Server와 함께 사용할 것임순서클라이언트가 Reverse Proxy로 들어오게 되면Reverse Proxy가 Web Server로 안내사용 이유(장점)서버 정보를 숨길 수 있음https 인증서 설치가 쉬움로드밸런싱 가능로그 남기기IP차단종류NginxcaddyNginx 로컬 설치 및 셋팅NginX 실행 순서Nginx 설치도커를 사용할 것이기에 우선 패스Nginx 설정 파일 작성Docker 폴더에 폴더와 파일 생성ex) nginx/myconfig1.conf이후 nginx 문법에 맞게 설정 코드를 작성해야 함.다만 따로 배운 적이 없기에 아래와 같이 우선 작성간단히 설명하자면listen 80 ← 8..

Docker&Container 2024.12.14

Docker&Container - Docker hub, push, pull

Docker hub, push, pull이미지를 다른 컴퓨터로 보내는 방법보통은 이미지를 호스팅해주는 곳에 업로드 후 사용하는게 편함.호스팅 해주는 서비스Docker hubAWS ECRAzure container registry 등순서Docker hub에서 Repositories 태그 클릭create Repository (이미지 보관 폴더 같은 것)그냥 github 같은거임이후 Docker Desktop에서 해당 이미지의 option 쪽에 push to Docker hub 있는데 이거 하면 됨.그런데 가끔 안될 때가 있기에 명령어로 하는 방법은 다음과 같음터미널에서 docker tag 이미지이름:태그 유저명/repo이름:태그명ex) docker tag nodeserver:v1 유저명/myserver:v1..

Docker&Container 2024.11.30

Docker&Container - 성능을 위한 Dockerfile 작성법

성능을 위한 Dockerfile 작성법이전 작성한 Dockerfile의 경우엔 아주 기초적인 코드를 작성했기에성능 최적화를 위한 추가적인 코드를 작성할 예정docker build 시간을 단축변동 사항이 많은 부분은 밑에 작성하기.이유는 기존 실행한 코드를 캐싱하게 되는데저번이랑 차이가 없다면 캐싱해둔 결과를 사용하기에.ex) COPY . . RUN [”npm”, “install”]그래서 package.json, 라이브러리 파일은 변동사항이 별로 없기에 위에 작성하여 캐싱된 데이터를 사용하는 것으로 시간을 단축하기순서package.json 파일 먼저 옮기기npm install 실행소스 코드 옮기고 실행기존FROM node:20-slim WORKDIR /app COPY . . RUN ["npm", "inst..

Docker&Container 2024.11.29

Docker&Container - 컨테이너 다루기

컨테이너 다루기보통 Docker Desktop ui 로는 Docker의 모든 기능을 사용할 수 없기에터미널에 명령어를 작성하여 사용하는 것이 대부분이라고 함.우선 이미지 실행은 터미널에 아래의 명령어를 입력하면 됨docker run 이미지명:태그명다만 이렇게 실행하게 되면 터미널이 점유하게 되어 다른 명령어를 작성할 수 없음그래서 백그라운드로 실행하도록 하기 위해선 아래와 같이 -d를 추가하기d → detached = 떨어져 있는docker run -d 이미지명:태그명그리고 서버가 들어있는 이미지는 그냥 실행하면 안되고, 포트를 설정 후 실행해야 함.docker run -d -p 내컴퓨터포트:컨테이너포트 이미지명:태그명그래서 나는 docker run -d -p 8080:8080 nodeserver:v1 ..

Docker&Container 2024.11.29

Docker&Container - Dockerfile로 도커 이미지 만들기

Dockerfile로 도커 이미지 만들기우선 현재 만들어진 코드 폴더에서 코드를 작성하기Dockerfile로 이름을 작성 후, 내 프로그램 구동시 어떤 것을 할 것인지 작성해야 함.즉, 밀키트 레시피를 작성해야 함.어떤 os를 사용할 것인지설치할 프로그램어떤 터미널 명령어를 실행할 것인지어떤 파일을 추가할 것인지우선 강의에서는 이전 node 강의 시 작성한 코드를 가져왔던데따로 설명이 없어서 아래 순서로 작성하기(node.js 설치 되어있어야함.)console 창 열어서npm init -y 입력해서 package.json과 package-lock.json 만들기이후 npm i express 입력해서 설치하면서, node_modules 생성된 것 확인하기이후 server.js 파일을 만들어서 아래와 같이 ..

Docker&Container 2024.11.29

Docker&Container - 시작하기 & 설치 & 이미지와 컨테이너 개념

Docker란?쉽게 생각하자면 밀키트라고 생각할 수 있음.도커 이전에는 VM(Virtual Machine)을 사용함다만 기존 OS 위에새로운 OS를 추가로 설치했기에 무거워지는 단점이 있었음그래서 도커가 사용됨도커란?OS, 개발용 SDK, 라이브러리, 필요한 프로그램, 코드가 담긴 밀키트이자, 해당 밀키트를 실행해주는 툴리눅스 자체의 가벼운 가상화 기술이 있었는데, 이를 활용하면 컨테이너를 만들 수 있었음(가상 컴퓨터)이것을 더욱 간편하게 사용할 수 있도록 하는 것이 도커.컨테이너란?이러한 도커(밀키트)를 실행하는 가상의 컴퓨터단점데이터를 영구적으로 보관, 관리할 때는 별로 (데이터 휘발성이 강하기에)그래서 도커를 만들어서 서버로 보내면 배포를 할 수 있음.이를 활용해서기존에는 다양한 서버의 기능을 하나..

Docker&Container 2024.11.28