ip와 port의 개념
·
쿠버네티스/docker
IP의 개념네트워크 상에서 특정 컴퓨터를 가르키는 주소를 의미한다. ("192.168.xx.xx" : 3000)nslookup {{domain}} : 해당 도메인의 ip주소를 확인할 수 있다.'여기서 domain에 "172.217.161.78" 을 입력하면 google로 이동됨Port의 개념ip에서 가르키는 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소 (192.168.xx.xx : "3000")실제 서버를 운영하는 컴퓨터에서 여러 프로그램이 실행되고 있는데, 이중 어떤 프로그램과 통신을 해야하는지 알려주는 역할을 한다.브라우저 창에서 포트번호를 입력하지 않는 이유도메인 주소를 통해 알 수 있는 것은 ip주소 뿐이다.만약 port를 직접 입력하지 않는 경우, 브라우저는 80번 포트로 통신하도록 지정되..
Docker Install on VM (Ubuntu 22.04)
·
쿠버네티스/docker
시스템 정보 확인하기sudo -i : 슈퍼 유저 또는 루트 권한으로 사용자를 전환root권한 주기 System 을 보는 데에는 root 권한이 필요한 경우가 많음cat /etc/os-release : os release 버전 확인Ubuntu 22.04.3 LTS 버전 확인된 상태uname -r : 현재 설치되어 있는 리눅스 커널 버전 확인6.5.0-28-generic 설치되어있는 상태free -h : 시스템 메모리 사용량 확인 (사람이 이해하기 쉬운 단위로 표기)lscpu : cpu 정보 확인2 core cpu 가 들어있음lscpu : hdd 정보 확인20GB HDD 확인 가능Docker Engnin 설치참고 링크 : https://docs.docker.com/engine/install/ubuntu/re..
9-2. 빌드에서 운영까지
·
쿠버네티스/docker
도커 컴포즈 설치하기참고 링크 : https://docs.docker.com/compose/install/standalone/docker compose 다운로드하기실행커미션이 없는 상태실행커미션 할당컨테이너 빌드에서 운영까지참고 링크 : https://docs.docker.com/compose/gettingstarted/디렉토리 생성하기빌드를 위한 Dockerfile생성app.py 생성하기도커파일에서 컨테이너 python base image에 library 설치할 때,requirements.txt에 있는 라이브러리를 설치함을 명시함.Dockerfile 생성함base image = python 작업 directory = /code환경변수 FLASK_APP=app.py                FLASK_..
9-1. 빌드에서 운영까지
·
쿠버네티스/docker
도커 컴포즈란?여러 컨테이너 일괄적으로 정의하고 실행할 수 있는 툴하나의 서비스를 운영하기 위해서는 여러개의 애플리케이션이 동작해야 함.컨테이너화 된 애플리케이션들을 통합 관리할 수 있음.도커 컴포즈 실행 방법도커를 실행할 때 추가한 옵션들을 docker command가 아닌, YAML형태로 만들음 (port, bolumes, name ..)docker compose에게 요청하여 도커명령어로 해석하여 docker container 운영도커 컴포즈 명령어docker compse ps : 도커 컴포즈를 통해 실행한 컨테이너 실행 상태 확인 및 삭제/제거/로그 확인 가능도커 컴포즈로 컨테이너를 실행할 수 있나요?문법에 맞춰 도커 컴포즈가 이해할수있는 YAML파일을 만들어서 전달함.참고 링크 : https://..
8-2. 컨테이너간 통신(네트워크)
·
쿠버네티스/docker
컨테이너 네트워크 사용하기docker 0 : docker 0 bridge Networkip addrdocker0 는 172.17.0.1 ip를 가지고 있음.brctl showdocker 0가 bridge interface라는 것을 확인할 수 있음모든 컨테이너는 docker 0 네트워크를 통해 외부로 송출됨docker run --name c1 -it busybox도커제로안에서 만들어진 컨테이너는 177.17.0.2 , 3, 4, .... 순차적으로 ip 할당되어짐첫번째로 실행된 container 은 177.17.0.2docker run --name c2 -it busybox두번째로 실행된  container 은 177.17.0.3ping -c 3 8.8.8.88.8.8.8 : google dns외부 통신이..
8-1. 컨테이너간 통신(네트워크)
·
쿠버네티스/docker
컨테이너 통신 방법Container Network Modeldocker0virtual ethernet bridge:172.17.0.0/16 값을 가지는 bridge network 가 docker 0.이 대역대 안에서 docker 0는 172.17.0.1 ip를 가지고 gateway 역할을 함.L2 통신기반container 생성 시 veth 인터페이스 생성(sandbox)모든 컨테이너는 외부 통신을 docker0을 통해 진행container running 시 172.17.X.Y로 IP 주소 할당.container 통신 방법docker host system 에서 docker deamon이 실 행되면 docker 0 라고 하는 docker network interface가 생김 docker 0은 virtual..
7-2.Docker Container Storage
·
쿠버네티스/docker
mysql DB data 영구 보존하기docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=pass mysql:latesthost path (/dbdata) 와 container path (/var/lib/mysql) 를 연결시켜 볼륨마운트를 통해 연결container path 에 db 의 컨텐츠가 쌓이는데 이를 /dbdata 에 영구적으로 보존.docker  run -v : 실행하기경로 및 실행중인 docker 확인/dbdata 경로 없음, 실행중인 docker .없음.docker run -d --name db -v /dbdata:/var/lib/mysql-e MYSQL_ROOT_PASSWORD=pass mysql:latest..
7-1. Docker Container Storage
·
쿠버네티스/docker
컨테이너 볼륨컨테이너 이미지는 read only (수정 X)컨테이너에 추가되는 데이터들은 별도의 RW 레이어에 저장컨테이너 이미지를 실행하여 하나의 프로세스 상태가 되어도 여전히 read only 상태.단, read/write 레이어가 만들어진 뒤 연결되고, 모든 데이터가 rw 레이어에 쌓임.유니온 파일 시스템 : readonly 레이어에 readwrite 변경사항이 하나인것처럼 보여짐 (=overlay)docker rm 명령어로 컨테이너 삭제 시, ro 와 rw 데이터는 모두 삭제됨 (복원 X)위 케이스를 방지하기ㅏ 위해 컨테이너 볼륨, 데이터 보존 기술이 중요함.데이터 보존 방법컨테이너가 만들어주는 데이터 영구적 보존mysql 컨테이너라는 가정 하에, /var/lib/mysql 안에 수많은 rw 데이..