새벽_나그네
12시 지난 새벽
새벽_나그네
전체 방문자
오늘
어제
  • 분류 전체보기
    • TIL
    • DevLog
    • Algorithm
    • ComputerScience
    • etc

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 국비지원
  • 코딩프로젝트
  • 코린이
  • 내일배움카드
  • 코딩
  • 프로그래머스
  • portfolio
  • machine learning
  • 자기주도학습
  • Github
  • Selenium 4
  • 스파르타코딩클럽
  • 개발일지
  • 내일배움캠프
  • docker
  • til
  • 내일배움단
  • Python
  • TodayILearned
  • AI트랙

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
새벽_나그네

12시 지난 새벽

3-5[DOCKER] DOCKER 강의 정리 #2
TIL

3-5[DOCKER] DOCKER 강의 정리 #2

2022. 3. 5. 22:16

오늘 한 일 (회고)

1. 백준 알고리즘 문제 풀이

- 15552

 

2.  Docker 2주 차 강의 완강 

내용 정리

- 몽고 디비 사용하기 : 생성

  • docker run --name mongo_db -p 27017:27017 -d mongo
  • Robo 3T를 사용해서 DB에 데이터 작성 용의
  • docker ps 명령어로 process 실행 상황 확인 가능

- named volume 사용해서 DB 데이터 유지하기 : 유지

  • docker volume create memo (memo라는 볼륨을 생성함)
  • docker volume inspect memo (memo 볼륨의 정보를 볼 수 있음)

-mongodb에 named volume 연결 : 연결

  • docker run -p 27017:27017 -v memo:/data/db mongo

몽고 디비와 앱을 연결하여 필요한 정보가 volume에 저장되어 남아있게 함, 재실행하였을대 위 명령어를 쳐주게 되면 종료 시 사라졌던 데이터를 다시 부를 수 있음

 

Docker bind mount는 새로 이미지를 생성하고 컨테이너를 다시 띄우는 작업을 줄여주는 기법이다.

- bing mount 명령어

  • docker run -v "$(pwd)/templates:/templates" -p 80:5000 nmdkims/docker-memo:version2

위 방법대로 실행을 하게 되면 도커에 있는 이미지를 이용하여 서버를 띄워놓은 상태에서도 파이 참에서 실행한 것 같이 html 파일 변경사항이 이미지 생성하여 재실행을 하지 않았는데도 불구하고 실행되는 것을 볼 수 있다.

 

- Docker network 

  • Docker 안에서 여러 개의 container 연결하기 중요한 개념
  • docker network create memo
  • docker run -d -p 27017:27017 --network memo --network-alias mongo mongo (강의 자료 이상함)
  • docker run -it --network memo nicolaka/netshoot (네트워크가 제대로 설정되었는지 확인하는 툴)
  • app.py에 DB link의 localhost -> mongo로 변경 여기서는 위에 alias mongo설정이 선행되어야 함
  • docker build -t nmdkims/docker-memo:version3. (이미지를 다시 생성)
  • docker run -d -p 80:5000 --network memo nmdkims/docker-memo:version3 (실행 시 nework를 분여서 실행)

- Docker container의 리소스 사용량 제한

  • 리소스 사용량 제한이 없으면 한 개의 컨테이너에서 cpu의 모든 리소스를 사용하여 다른 container가 실행되지 않을 수도 memory가 부족할 때 자동으로 종료되는 process에서 정말 필요한 process가 있을 수도 또 이것과는 다르지만 다른 문제가 생길 수 있다.
  • docker run -i -m 10m python:3.8
  • docker run -i --cpus=0.5 python:3.8

- Docker compose 여러 컨테이너를 편리하게 실행

  • docker-compose up -d
  • cocker-compost down
version: "3.9"

services:
  flask:
    build:
      context: .
    ports:
    - 5000:5000
#--------------- 위에 내용 만들어서 사용 -------------
  mongo:
    image: mongo
    ports:
      - 27017:27017
#--------------- 이미 있는 이미지를 사용 -------------

- Volume을 추가하여 저장 내용 유지시키기 yaml을 이용 

version: "3.9"

services:
  flask:
    build:
      context: .
    volumes:
      - ./templates:/templates
    ports:
    - 5000:5000
#--------------- 위에 내용 만들어서 사용 -------------
  mongo:
    image: mongo
    volumes:
      - mongo:/data/db
    ports:
      - 27017:27017
#--------------- 이미 있는 이미지를 사용 -------------
volumes:
  mongo:
#--------------- 위 두줄 갑자기 적은 이유 물어보기 -------------

- 사용하지 않는 리소스 정리하기 

  • rm
  • docker system prune -a 

- TIP

#FROM python:3.8
FROM python:3.8-slim

이미지를 만들 때 실행에 필요한 내용만 포함한 슬림 베이스 이미지를 사용하면 작은 용량으로 만들 수 있고 이는 속도 향상과 이어질 수 있다.

 

다른 축소 방법으로 multistage build 활용이 있다.

 

내일 할 일

1. 백준 알고리즘 문제 풀기

 

2. 티스토리 블로그에 TIL을 올리면 자동으로 Github에 올라갈 수 있게 만들기

 

3. 장고 클론 코딩 위주로 실습 시작하기

 

4. 파이썬 장고 실무 복습하기

- 파이썬 기초 복습 특강 공부 후 

 

5. DOCKER 강의 3주 차 완강

저작자표시 비영리 변경금지 (새창열림)

'TIL' 카테고리의 다른 글

3-7[Project] Data base 구조  (0) 2022.03.07
3-6[DOCKER] DOCKER 강의 정리 #3  (0) 2022.03.06
3-4[DOCKER] DOCKER 강의 정리 #1  (0) 2022.03.04
3-3[Project] Today_nsft 프로젝트 회고  (0) 2022.03.03
3-2[Project] S3, RDS 설정  (1) 2022.03.02
    'TIL' 카테고리의 다른 글
    • 3-7[Project] Data base 구조
    • 3-6[DOCKER] DOCKER 강의 정리 #3
    • 3-4[DOCKER] DOCKER 강의 정리 #1
    • 3-3[Project] Today_nsft 프로젝트 회고
    새벽_나그네
    새벽_나그네
    IT, 프로그래밍, 정보, 스마트스토어

    티스토리툴바