본문 바로가기
728x90
반응형

DevOps32

지속적 통합 및 지속적 배포(CI/CD) 이해-Docker 오늘날 빠르게 변화하는 개발 환경에서 CI/CD(지속적 통합 및 지속적 배포)는 소프트웨어를 빠르고 효율적이며 안정적으로 출시하는 데 중요한 역할을 합니다. CI/CD가 무엇인지, 그리고 이것이 현대 소프트웨어 개발에 필수적인 이유를 살펴보겠습니다.CI/CD란 무엇인가요?지속적 통합(CI)CI(지속적 통합)는 개발자가 코드를 공유 저장소에 자주, 이상적으로는 하루에 여러 번 통합하는 개발 방식입니다. 각 통합은 가능한 한 빨리 통합 오류를 감지하기 위해 애플리케이션을 구축하고 일련의 테스트를 실행하여 자동으로 확인됩니다. CI의 주요 목표는 다음과 같습니다. 통합 버그 조기 감지: 자주 통합하면 개발자가 통합 버그를 더 빨리 감지하고 수정할 수 있으므로 안정적인 코드베이스를 더 쉽게 유지할 수 있습니다... 2024. 5. 21.
veth Docker에서 veth (가상 이더넷 디바이스) 이해하기도커(Docker)를 사용하면서 컨테이너 간 통신이나 호스트와 컨테이너 간의 통신을 설정할 때 'veth'라는 용어를 접하게 될 수 있습니다. veth는 'virtual ethernet device'의 약자로, 가상의 네트워크 인터페이스를 말합니다. 이 글에서는 veth가 무엇이며, 어떻게 작동하는지에 대해 설명하겠습니다. veth란?veth는 가상 이더넷 장치로, 주로 컨테이너 네트워킹에서 두 네트워크 네임스페이스를 연결하는 데 사용됩니다. 각 veth 쌍은 서로 연결된 두 개의 가상 인터페이스로 구성되어 있으며, 한 쪽은 하나의 네트워크 네임스페이스에, 다른 한 쪽은 다른 네트워크 네임스페이스에 위치합니다. 이 구조는 데이터 패킷이 한 인터페이.. 2024. 5. 3.
CNM(도커 컨테이너 네트워크 모델) 도커 컨테이너 네트워크 모델 (CNM) 이해하기도커는 컨테이너화된 애플리케이션의 배포와 관리를 쉽게 만들어주는 인기 있는 플랫폼입니다. 이러한 컨테이너들이 서로 통신하고 외부 세계와 연결될 수 있도록 하는 네트워킹은 매우 중요한 부분입니다. 도커에서는 이를 위해 Container Network Model(CNM)을 사용합니다. CNM은 네트워크의 구성 및 관리를 단순화하고 표준화하는 데 목적이 있습니다.CNM 핵심 구성 요소CNM 은 세 가지 구성 요소로 이루어져 있습니다.1. Network (네트워크): 네트워크는 여러 컨테이너가 서로 통신할 수 있는 가상의 영역을 말합니다. 도커는 다양한 유형의 네트워크 드라이버를 제공하여 다른 네트워킹 요구사항을 충족시킵니다. 예를 들어, 'bridge' 네트워크는.. 2024. 5. 2.
Docker 명령어 정리 1. docker run역할: 새로운 컨테이너를 생성하고 실행합니다. 예시: docker run -d -p 80:80 nginx이 명령은 nginx 이미지를 사용하여 백그라운드에서 컨테이너를 실행하고 호스트의 80번 포트와 컨테이너의 80번 포트를 연결합니다.2. docker stop역할: 실행 중인 컨테이너를 정지합니다. 예시: docker stop my_container**my_container**라는 이름의 컨테이너를 정지합니다.3. docker start역할: 정지된 컨테이너를 다시 시작합니다. 예시: docker start my_container정지된 **my_container**를 다시 실행합니다.4. docker restart역할: 컨테이너를 재시작합니다. 예시: docker restart .. 2024. 5. 1.
컨테이너 격리 기술 도커 컨테이너 실행# docker run -it --rm --name=mycontainer centos:8 bash[root@0dba852c419d /]## lsbin etc lib lost+found mnt proc run srv tmp vardev home lib64 media # df -ThFilesystem Type Size Used Avail Use% Mounted onoverlay overlay 79G 18G 58G 24% /tmpfs tmpfs 64M 0 64M 0% /devtmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroupshm.. 2024. 5. 1.
docker registry 구성과 관리 docker container registry ● 기업 내부에서 생성한 프로젝트용 이미지를 public registry에 올리는 경우는 없다. ● image에 네트워크나 OS 및 미들웨어 설정 등의 정보가 포함되어 있으므로 보안상 Docker Hub와 같이 인터넷을 통해 불특정 다수에게 공개되는 곳에는 올릴 수 없는 경우에는 Private Registry를 구축한다. ● Docker registry는 docker image를 회사 서버에서 개별적으로 구축 관리하는 서비스다. ● 회사 인프라내 private docker registry를 구축하기 위해서는 Docker Hub에 공개되어 있는 공식 image 인 registry를 사용한다. ● 적은 용량의 container service로 사용하기에 적합하다.. 2024. 3. 25.
docker hub repositories에 image push 이미지 올리기(push) - Dockerfile을 통해 생성된 이미지나 docker commit을 통해 생성된 이미지를 저장하는 곳을 registry라고 한다. - Registry는 공개적으로 사용하는 Public registry와 회사 내부에서만 접근되도록 하는 Private registry가 있다. 1. dockerhub의 계정을 만든 후 서버에서 docker login 명령어를 통해 도커 허브에 로그인한다. 2. docker tag : hub.docker.com에 본인의 계정의 Repositories에 넣기 위한 태그를 수행한다. - tag는 이미지의 새로운 참 조명을 넣는 방법이다. - OS, 버전 표시로 활용하기도한다. docker [image] tag → push hub.docker.com에 .. 2024. 3. 19.
docker image 이해와 구조 확인 docker 컨테이너 서비스를 위한 image - docker image는 Container rutime에 필요한 바이너리, 라이브러리 및 설정 값 등을 포함하고, 변경되는 상태 값을 보유하지 않고(stateless) 변하지 않는다. 이미지 내려 받기 Docker는 hub.docker.com(docker.io)으로 부터 이미지를 제공 받거나 제공한다. 기업의 인프라에 개별적인 Private registry 서버를 두고, 이곳에 이미지를 pull/push 하기도 한다. # docker [image] pull [options] name:[tag] # docker pull debian[:latest] # docker pull library/debian:10 # docker pull docker.io/libra.. 2024. 3. 15.
최신 docker 엔진(ver) update 최신 버전을 유지해야하는 이유 1. 기존 기능 개선 및 new feature 2. 버그 수정 3. 보안 패치 4. 성능 개선 5. 최신 기술과의 호환성 6. 커뮤니티 및 생태계 지원 7. 유지 관리 및 오랜 기간의 지 운용중인 Docker 엔진 업데이트 시나리오 ubuntu 18.04 운영 체제에 docker 19.x 버전을 사용 중이다. 새로운 기능의 호환성을 맞추고 성능 향상을 위해 최신 업데이트를 결정했다. 작업절차 1. 기존에 실행 중인 컨테이너들을 stop 한다. 2. 현재 사용 중인 19.x 버전의 docker 엔진을 삭제 3. 최신 버전의 docker 엔진을 설치 4. 기존 버전에서 운영 중이 였던 컨테이너 기동(start) 5. 에러 발생시 원인 파악, 문제해결 -> 중지 되었던 컨테이너 .. 2024. 3. 14.
728x90
반응형