본문 바로가기

전체 글

10-2 빌드에서 운영까지 (using Docker Compose) - 실습편 Q1.도커컴포즈설치 https://docs.docker.com/compose/install/ Overview docs.docker.com https://docs.docker.com/compose/gettingstarted/ Try Docker Compose docs.docker.com docker 엔진 설치되어야있어야함. dockercompose설치하기 sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 실행권한주기 sudo chmod +x /usr/local/bin/docker-compose Q2.. 더보기
10-1 빌드에서 운영까지 (using Docker Compose) - 이론편 Q1.도커컴포즈는 뭐예요?? 여러 컨테이너를 일괄적으로 정의하고 실행할 수 있는 툴 https://github.com/docker/awesome-compose/tree/master/official-documentation-samples/wordpress/ docker compose.yml 예시 services: db: # We use a mariadb image which supports both amd64 & arm64 architecture image: mariadb:10.6.4-focal # If you really want to use MySQL, uncomment the following line #image: mysql:8.0.27 command: '--default-authentication.. 더보기
9-2 컨테이너간 통신(네트워크)- 실습편 Content container network 사용하기 container 포트를 외부로 노출 user-defined network 구성하기 container 간 통신 ( wordpress, mysql 컨테이너 서비스 구축 ) Q1.container network 사용하기 docker0에서 만들어진 container는 기본적으로 “순차적으로” ip가 할당된다 모든 컨테이너는 docker0를 통해서 외부와 통신한다 ( 이 docker0를 bridge network라고 한다 ) docker0 bridge Network ip addr 명령어 실행! ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 0.. 더보기
git checkout 갱신 refactoring 브랜치로 체크아웃 해서 작업하려고 git checkout refactoring 명령어를 입력하니, 다음과 같은 에러메세지를 마주했다. error: pathspec 'refactoring' did not match any file(s) known to git 해당 에러는 로컬 저장소의 git과 리모트 저장소의 git 정보가 동기화 되지 않아서, 새로 만들어진 리모트 저장소 브랜치를 참조할 수 없기에 발생하는 에러다. 그러므로 아래 명령어로 원격 브랜치를 업데이트 한 뒤 checkout을 실행하면 잘 동작한다! git remote update git checkout 브랜치명 git remote update : 모든 원격 브랜치를 업데이트하여 최신 상태로 갱신한다. 하지만 로컬 저장소에서.. 더보기
9-1 컨테이너간 통신(네트워크)- 이론편 Q1. 컨테이너는 어떻게 통신하나요? 모든 컨테이너는 외부 통신을 docker0 를 통해 진행 docker0 bridge interface Q2. 컨테이너 포트를 외부로 노출할 수 있어요 ? port-forwarding -container port를 외부로 노출시켜 외부 연결 허용 iptables rule을 통한 포트 노출 -p hostPort:caontainerPort -p conatainerPort -P:대문자는 expose 한 포트와 매칭을 시키고 랜덤으로 포트를 만들어 주게된다. docker run --name web -d -p 80:80 nginx:1.14 iptables -t nat -L -n -v Q3. 컨테이너 네트워크를 추가할수 있나요? user-defined bridge network .. 더보기
쿠버네티스가 왜 필요할까 ? VIrtual machine환경으로 넘어오면서 하나의 하이퍼바지어를 통해 논리적인 머신을 virtual box를 통해서 사용했었다. 하지만, 재가동하는 시간 os를 따로 설치하는시간이 너무 오래 걸리는 단점이 있다. 그래서 , 탄생한 것이 Container 기술 Docker와 Kubernetes가 탄생했다. 쿠버네티스란 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템입니다. 출처: https://kubernetes.io/ 쿠버네티스는 단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향하고, 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할을 합니다. 서버리스, CI/CD, 머신러닝 등 다양한 기능이 쿠버네티스 플랫폼 위에서 동작합니다. 쿠버.. 더보기
8-2 Docker Container Storage - 실습편 Q1. mysql DB data 영구보존하기 sudo docker run -d --name db -v /dbdata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:latest :를 기준으로해서 앞은 호스트에 저장될공간 뒤는 컨테이너에디렉토리와 -v 불륨마운트하겠다(영구적으로 보존) mysql container 에 접속하기 sudo docker exec -it 8f67a2803939 bash mysql -u root -p Enter password: Server version: 8.0.33 MySQL Community Server - GPL Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a re.. 더보기
8-1 Docker Container Storage - 이론편 Q1. 컨테이너 불륨이 뭐예요 ? Container Volumn이란 ? Container image는 Read ONLY 속성을 가지고 있다.(수정 불가 !) 이러한 image를 run 하게 되면 , 하나의 process 가 된다. Container Image 는 Read ONLY이지만,Run 된 Container에는 rw(read & write) layer 가 생성 모든 데이터는 rw layer 에 쌓이게 된다. 하지만 ro와 rw는 하나인 것 처럼 보여주는데 이를 Union File System라고 한다. docker rm으로 도커 컨테이너를 삭제했다고 해보자. 이럴 경우, ro & rw layer모두 사라지게 된다. ( 따라서 rw에 저장되었던 모든 데이터도 함께 사라지게 된다 ) 이러한 상황을 막기.. 더보기