분류 전체보기 332

Docker_(5)

서버의 복잡도 상승 시 해결 방안 문서화 - 서비스 상황, 셋업 방법 문서화 - 문제 발생 시 해결 방법 문서화 - 하지만, 서버를 일일히 관리하고 명령을 실행한 다는 것은 사실상 불가능 코드화 - Infrastructure As Code : DevOps 엔지니어가 꼭! 알아야함 - 자동화 된 코드 스크립트로 해결 - 다수의 서버에 명령을 대신 실행 - 다양한 툴이 존재 - 단점 : Learning curve가 높음, 설치 시 소프트웨어 충돌 문제에는 도움이 안됨 Virtual Machine 도입 - 소프트웨어의 충돌 해결을 위해 사용 (하나의 Physical Server에 다수의 VM을 올리고 서비스 별로 하나씩 할당) - 단점 : VM의 리소스 소비가 크고 느림, 특정 VM 벤더 혹은 클라우드에 종속..

Docker_(4)

Docker Compose 소프트웨어가 다수의 Container로 구성되는 경우 사용할 수 있는 툴 + 환경설정파일 - docker-compose.yml 파일로 설정 - 다양한 테스트 수행 가능 - 다양한 버전을 만드는 것이 일반적 (dev, test, prod 등...) 개별 Container를 따로 관리하는 것보다 생산성이 더 높음 파일의 이름은 docker-compose.yml or docker-compose.yaml Compose 사용법 자체는 간단하지만 적용 시, 배워야 할 것이 많고 구성이 복잡해짐 다양한 명령어 - docker-compose build - docker-compose up : build, create, start를 한 번에 하는 명령어 - docker-compose pull :..

Docker_(3)

Docker Volume 소프트웨어가 Docker Container를 통해 동작 시 관련된 데이터는 휘발성 데이터임 이를 방지하기 위한 것이 Docker Volume Docker Container 내의 가상 파일 시스템과 호스트 시스템의 파일 시스템을 맵핑 Container와 Host 시스템이 특정 폴더를 공유하는 것 - 즉, Container가 사라지더라도 데이터는 남게 하는 것 호스트 파일 시스템 폴더를 Docker Container 파일 시스템 폴더로 마운트하는 것 파일 시스템에서의 마운트 - 마운트 = 디스크와 물리적인 장치를 파일 시스템의 특정 위치(폴더)에 연결하는 것 Docker Volume 타입 Host Volumes: docker run -v 를 실행할 때 페어로 지정 - : 앞이 호스트..

Docker_(2) with CI/CD

Docker 컨테이너 내부와 호스트 통신 Docker 컨테이너가 내부 프로세스를 오픈하였다고 해서 외부 프로세스에서는 접근할 수 없음 이때, 내부 프로세스 오픈 시 포트번호를 외부로 노출하여 포트맵핑(포트포워딩)을 해주면 가능 docker run 실행 시 -p 옵션 사용 - docker run -p 4000:4000 이미지이름 소프트웨어 빌드 자신 (or 팀)이 개발한 소프트웨어를 최종적으로 출시하기 위한 형태로 만드는 것 - 테스트가 빌드의 중요 부분 참여 개발자들이 많을수록 소프트웨어 빌드가 더욱 더 중요 개발이 끝나기 전부터 빌드를 하면 소프트웨어의 안정성 증대 (Continuous Integration) Continuous Integration (CI) Software Engineering Pra..

Docker_(1) feat. vi (or vim)

Docker가 왜 필요할까? 문제점 개발자는 한 명이 아니다! 여러 사람이 협업해서 만들어간다! 설령, 한 명의 개발자가 만든 프로그램의 컴퓨터 환경과 다른 개발자의 컴퓨터 환경은 다르다! 나의 컴퓨터 환경을 그대로 패키징하여 다른 사람이 사용할 수 있게! Docker Image : 독립적으로 완전하게 만들어진 패키지 Docker Container : Docker Image를 독립된 환경에서 실행한 것 Docker의 목표 = 소프트웨어를 일관되게 빌드하고 실행하고 배포하는 것! VM (Virtual Machine)과 Docker Container Virtual Machine (VM) 하드웨어를 추상화하여 한 컴퓨터 위에 가상의 컴퓨터를 올리는 것 AWS의 EC2가 대표적인 VM 장점 소프트웨어를 실행하기..

728x90