일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 명령어
- JavaScript
- revert
- onicecandidate
- minikube
- 미니큐브
- 6.6.0
- corsmiddleware
- 위코드
- kurento
- underscore
- 독스트링
- fastapi
- 도커
- Docker
- 표준에러
- Docker Compose
- RTCP
- Dockerfile
- 기초
- 자바스크립트
- 리눅스
- kubernetes
- 7.0.0
- 쿠버네티스
- 표준출력
- stash
- Python
- docstring
- 파이썬
- Today
- Total
목록Docker (4)
Devlog
도커를 사용하다 보면 커스텀하는 정도에 따라 컨테이너를 띄울 때 굉장히 긴 명령어를 입력해야 할 때가 있다. 어떤 모드로 실행할 것인지, 컨테이너 이름은 무엇으로 할 것인지, 어떤 네트워크에 연결할 것인지 등등... 그리고 서로가 통신을 하는 여러 개의 컨테이너로 이루어진 서버를 띄우기 위해 그 많은 명령어를 모두 입력한다고 생각하면 아찔하다... 물론 어딘가에 문장을 저장해 두었다가 복붙을 해도 되지만 뭔가 개발자적이지 못한 느낌이 들지 않는가? 이를 위해 도커는 수많은 명령어를 미리 선언해 손쉽게 컨테이너를 띄워주는 docker-compose를 지원한다. docker-compose를 사용하는 방법을 알아보자. docker-compose 파일 작성하기 우선 명령문을 미리 선언해 둘 파일이 필요하다. 프..
컨테이너 서버를 띄우게 되면 해당 컨테이너 서버는 상황에 따라 WWW 웹, 로컬 시스템, 다른 컨테이너와 통신을 주고 받을 수 있다. 그렇다면 컨테이너가 해당 상황들에서 어떻게 통신할 수 있는지를 알아보자. WWW(World Wide Web) 서버와 통신 첫 번째 상황은 외부의 인터넷상에서 다른 API와 통신하는 것이다. 사실 도커 컨테이너는 WWW상의 다른 외부 서버와 통신은 별 다른 설정이 필요없다. 예시를 통해 보도록하자. app.get("/movies", async (req, res) => { try { const response = await axios.get("https://swapi.dev/api/films"); res.status(200).json({ movies: response.data..
도커 컨테이너의 내부 데이터는 기본적으로 컨테이너가 삭제될 때 모두 삭제된다. 그리고 각 컨테이너는 개별적으로 활동하는 특징을 가진다. 만약 서버 부하를 막기 위해 특정 데이터를 처리하여 저장하는 일종의 같은 작업을 하는 컨테이너를 스케일 업하여 여러 개를 두었다고 하면, 첫 번째로 어떤 데이터를 찾을 때 어떤 컨테이너에 저장되었는지 찾기가 힘들 수 있으며 작업 컨테이너가 필요 없어져 삭제를 할 경우 내부 데이터가 사라져 버릴 수 있다. 이럴 때 도커 볼륨(volume)을 이용하여 해당 데이터를 보존하고, 각각의 컨테이너가 함께 사용할 수 있다. 볼륨은 크게 익명 볼륨, 명명된 볼륨, 바인드 마운트로 나뉜다. 각각의 특징을 이용하고 활용하는 방법을 알아보자. 볼륨이란? 볼륨의 종류들에 이해하기 전에 볼륨..
Dockerfile은 도커 이미지를 만들기 위한 설계도이고, 이미지는 최종적으로 컨테이너를 찍어내기 위한 일종의 틀? 금형? 과 같다고 할 수 있다. 간단한 Dockerfile을 만들어 보자. # 도커 파일 내부변수 설정 ARG DB_PORT=3306 # 파이썬 환경을 도커 허브에서 불러오기 FROM python:3.9 # 기본 작업 경로 설정 WORKDIR /app # 필요 라이브러리 목록 복사 COPY requirements.txt ./requirements.txt # 필요 라이브러리 설치 RUN pip install -r requirements.txt # 서버 프로젝트 파일을 작업 경로에 복사 COPY . /app # 환경 변수 설정 ENV DB_HOST 172.17.0.1 ENV DB_PORT $..