DevOps

DevOps

이미지 레지스트리 명령어 사용하기

도커 허브https://hub.docker.com/ 아이디가 없다면 가입을 하셔야 합니다.회원가입을 마치고 로그인을 한 다음 Repositories를 들어가 보면 아직 아무것도 없는 것을 확인할 수 있습니다.이미지 다운, 업로드 명령어docker pull 이미지명 : 로컬 스토리지로 이미지 다운로드docker tag 기존이미지명 추가할 이미지명: 새로운 이미지명을 만드는 명령어docker push 이미지명: 이미지 레지스트리에 이미지 업로드이미지명을 변경하는 이유A프로젝트에서 이미지를 다운 받아서 사용한 다음 프로젝트명을 그대로 A로 두고 이미지를 push 한다면 기존에 다운받은 A프로젝트에 push가 될 것입니다.본인의 프로젝트에 이미지를 push 하고 싶다면 A프로젝트를 다운받고 docker tag를..

DevOps

이미지 레지스트리

이미지 레지스트리와 이미지 네이밍 규칙에 대해서 알아보겠습니다이미지 레지스트리이미지를 저장하는 저장소GitHub 같은 저장소의 역할을 한다. 가장 유명한 레지스트리는 Docker Hub입니다.이미지 레지스트리가 공통적으로 제공하는 기능이미지 공유이미지 검색이미지 버전 관리보안파이프라인이미지 공유이미지를 다운로드, 업로드하는 기능을 제공합니다.이미지 검색이미지 레지스트리에 있는 이미지들을 검색하고 필요한 이미지를 찾아볼 수 있습니다.이미지 버전 관리이미지 레지스트리는 버전 관리 기능이 있기 때문에 사용자는 원하는 버전을 다운로드할 수 있습니다.보안안전한 이미지를 다운로드할 수 있도록 업로드된 이미지의 보안을 검증하는 기능도 있습니다.파이프라인DevOps 파이프라인 기능과 연계해서 이미지를 업로드했을 때 자..

DevOps

컨테이너의 라이프사이클

docker run 명령어는 docker create와 start가 합쳐진 명령어입니다.실행 상태에서 docker restart를 하면 프로세스를 재식작할 수 있습니다. 실행중인 프로세스에 종료나 재시작 신호를 보내면 10초 뒤에 이 신호가 동작하게 됩니다.docker pause : 컨테이너에서 실행 중인 모든 프로세스가 일시 중지된 상태입니다.현재의 상태를 모두 메모리에 저장해 두는 것 = CPU는 사용하지 않고 메모리만 사용합니다.docker unpause: 프로세스를 일시 중지한 시점으로 재시작 가능합니다.docker start : 실행 중인 프로세스가 모두 종료되었고 다시 시작하면 CPU 및 모든 리소스가 처음 부터 재식작합니다.컨테이너는 모든 상태에서 rm 명령을 사용해서 삭제할 수 있습니다.대..

DevOps

도커 이미지와 컨테이너 - 메타데이터

하나의 이미지는 이미지파일과 이미지에 대한 메타데이터로 구성되어 있습니다.Env: 소프트웨어의 실행할 때 사용할 설정 정보Cmd: 컨테이너 실행 시 프로세스 실행 명령어 지정이미지를 컨테이너로 실행할 때 CMD에 있는 명령어를 통해서 어떤 프로그램을 실행할지를 메타데이터에서 결정합니다.컨테이너를 실행할 때 이미지의 메타데이터를 읽어서 컨테이너의 메타데이터를 생성합니다.컨테이너는 실행할때 Cmd 부분을 덮어쓰기해서 실행할 수 있습니다.컨테이너를 실행할 때 더 큰 유연성과 적응성을 제공합니다. 이를 통해 다양한 환경과 상황에 맞춰 컨테이너의 동작을 쉽게 조정할 수 있습니다.유연한 실행: 동일한 이미지를 다양한 용도로 사용할때, 특정 작업을 수행하기 위해예) 디버깅이나 특정 스크립트를 실행하는 경우환경에 맞춘..

DevOps

도커에서 이미지란

이미지특정 시점의 파일시스템(디렉터리)를 저장한 압축 파일컨테이너를 사용하는데 있어서 아주 중요한 기능을 한다.다른 사람이 만들어 놓은 이미지를 사용할 수도 있고, 자신이 직접 이미지를 생성해서 사용할 수도 있다. 물론, 공유도 가능하다.이미지와 컨테이너 실행이미지와 컨테이너를 이해하기 전에 프로그램와 프로세스에 대해 간단하게 알아보겠습니다.프로그램- 실행 가능한 소프트웨어- 디스크 공간 차지프로세스- 실행되고 있는 프로그램- 프로그램 1 : N 프로세스- 실행시 CPU, MEM등의 리소스 사용이미지- 실행 가능한 소프트웨어 + 실행에 필요한 환경- 디스크 공간 차지컨테이너- 실행 상태의 이미지- 이미지 1 : N 컨테이너- 컨테이너로 실행 시 CPU, MEM 등의 리소스 사용- 컨테이너 간 리소스 격리..

DevOps

컨테이너 실행

도커 명령어docker version : Client, Server의 버전을 볼 수 있다.docker info : docker의 상태를 상세하게 볼 수 있다.docker --help : 메뉴얼 확인docker [Management Command] Commanddocker container(생략가능) run ...docker container --help : 도커의 컨테이너 관련 도움을 받을 수 있다.docker container run --help : 도커 컨테이너를 실행하기위한 여러가지 도움을 받을 수 있다.docker run(실행옵션) 이미지명: 컨테이너 실행도커를 사용해서 Nginx 실행해보기docker run -p 80:80 --name hellonginx nginx1. Nginx 이미지 다운로드..

DevOps

도커(Docker) 란

도커컨테이너(Container)라는 가벼운 독립 실행형 패키지로, 배포, 테스트, 실행할 수 있게 해주는 2013년 최초로 공개된 오픈 소스 플랫폼입니다.도커 아키텍처클라이언트 - 서버 모델클라이언트: 사용자의 명령을 전달 도커 데몬 : 실제 컨테이너를 관리, 클라이언트가 기능을 사용할 수 있게 API를 전달도커데몬이 API를 제공하지만 이를 읽고 이해하기에는 비효율적이기 때문에 도커에서는 Docker CLI를 제공합니다.사용자가 명령어를 입력하면 서버의 API 양식에 맞게 만들어서 대신 전달합니다.정리도커는 가벼운 독립 실행형 패키지이고, 클라이언트-서버 모델로 이루어져 있습니다.클라이언트는 Docker CLI를 통해서 편리하게 컨테이너를 관리할 수 있습니다. CLI는 API 맞게 변경되어 Docker..

DevOps

컨테이너 가상화

컨테이너 가상화애플리케이션과 그 의존성을 패키징하여 격리된 황경에서 실행할 수 있게 하는 기술하드웨어 가상화(VM)와 달리, 운영 체제 수준에서 가상화를 수행하여 경량화된 독립 실행형 환경을 제공합니다.하이퍼바이저 없이 커널의 자체 기술을 활용한 가상화, 모든 컨테이너가 하나의 커널을 공유합니다.커널의 격리 기능을 활용하기 때문에 호스트OS를 사용합니다.컨테이너 가상화의 주요 특징경량화 : 호스트 OS의 커널을 공유하기 때문에 가상머신보다 훨씬 가볍고, 빠르게 시작, 종료할 수 있다.격리성 : 각 컨테이너는 독립적인 파일 시스템, 네트워크, 프로세스 공간을 가지므로, 서로 간섭 없이 실행됩니다.이식성 : 컨테이너는 모든 종속성을 포함하므로, 한 환경에서 다른 환경으로 이동할 때 일관된 실행을 보장합니다...

DevOps

하이퍼바이저 가상화

가상화존재하는 컴퓨터는 아니지만 마치 컴퓨터가 있는 것처럼 만들어주는 기술실제 존재하는 것 = 물리적 가상으로 존재하는 것 = 논리적물리적으로 존재하는 하나의 컴퓨터에 논리적으로 여러개의 컴퓨터를 만들어서 사용합니다.가상화 기술을 사용하는 이유만약 한대의 컴퓨터에서 4개의 애플리케이션을 운영한다고 했을때 하나의 애플리케이션에서 문제가 생기면 다른 애플리케이션에도 문제가 생길 위험이 있습니다.하지만, 가상화 기술을 사용해서 한 대의 컴퓨터에서 여러 대의 논리적 OS 환경을 만들어서 사용한다면 이는 논리적으로 격리된 상황이기 때문에 하나의 애플리케이션에서 문제가 생긴다고해도 다른 애플리케이션은 안전하게 운영이 가능합니다.가상화 기술의 종류하이퍼바이저(VirtualBox, vmware 등)컨테이너(Docker..

DevOps

애플리케이션 서버

서버네트워크 상에서 다른 컴퓨터(클라이언트)에게 서비스를 제공하는 컴퓨터 또는 소프트웨어서버의 주요 기능데이터 저장 및 관리 : 서버는 대량의 데이터를 저장하고, 이를 필요로 하는 클라이언트에게 제공하는 역할을 합니다.리소스 공유 : 네트워크 상의 여러 클라이언트가 프린터, 파일, 애플리케이션 등 다양한 리소스를 공유할 수 있도록 합니다.응용 프로그램 서비스 : 웹 서버, 메일 서버, 데이터베이스 서버 등 특정 응용 프로그램을 실행하고 클아이언트가 이들 서비스에 접근할 수 있게 합니다.보안 관리 : 네트워크 트래픽을 모니터링, 데이터 접근 권한을 관리, 시스템 보안을 유지합니다.서버의 종류웹 서버 : 클라이언트의 HTTP 요청을 처리하여 웹 페이지를 제공하는 서버입니다. 예) Apache, NginxDB..

여행하는 개발자(SOO)
'DevOps' 카테고리의 글 목록