본문 바로가기

container

(6)
[Docker] Docker Registry를 사용한 프라이빗 레지스트리 구축(이미지 업로드 및 다운로드) Docker Registry Docker 이미지를 공유하고 싶으나 인터넷상에는 공개하고 싶지 않은 경우에는 Docker 이미지를 관리하기 위한 레지스트리를 로컬 환경에 구축하여 관리합니다. 이러한 레지스트리를 프라이빗 네트워크 안에서 구축하려면 Docker Store에 공개되어 있는 공식 이미지인 'registry'를 사용합니다. https://hub.docker.com/_/registry registry Take full advantage of Docker Hub with a free Docker ID Sign up for a Docker ID to get more out of Docker Hub. Increased pull limits, free storage of public images, free..
[Linux] Ubuntu에서 LXC 컨테이너 사용하기 Docker의 베이스 기술인 LXC를 사용해보겠습니다. 실행하는 모든 명령어는 root 권한으로 실행하길 바랍니다. Ubuntu에 LXC 설치하는 명령어는 다음과 같습니다 apt update apt install lxc Ubuntu 컨테이너 실행 lxc-create 명령어를 통하여 ubuntu 컨테이너를 생성합니다. lxc-create -n myContainer -t ubuntu -n 플래그에 전달된 값은 컨테이너 이름이며, -t 플래그는 Ubuntu 템플릿으로 컨테이너를 만들라고 lxc에 명령합니다. (처음에 시간이 조금 소요될 수 있습니다.) 간단하게 Ubuntu 템플릿으로 컨테이너를 생성해보았습니다. 사용할 수 있는 템플릿은 여러개 있는데 /usr/share/lxc/templates 디렉토리에 사용..
[Docker] Multi-stage build를 이용한 Nginx 웹 서버 이미지 만들기 다음 사이트의 예제를 참조하여 작성하였습니다. progressivecoder.com/docker-multi-stage-build-for-running-react-application-on-nginx-server/ Docker Multi Stage Build for running React Application on Nginx Server Docker Multi Stage Build lets you write multi stage Dockerfiles to cover build and run stages. We look at multi stage build for React app on Nginx progressivecoder.com 지난 글에서 Docker의 Multis-stage에 대하여 알아보았고, ..
[Docker] Dockerfile - Multi-stage build(멀티스테이지 빌드) 애플리케이션 개발 시에 개발 환경에서 사용한 라이브러리나 개발 지원 툴이 제품 환경에서 반드시 사용되는 것은 아닙니다. 제품 환경에는 애플리케이션을 실행하기 위해 최소한으로 필요한 실행 모듈만 배치하는 것이 컴퓨팅 리소스를 효율적으로 활용할 수 있다는 점에서 보안 관점으로 볼 때 바람직합니다. 멀티스테이지 빌드란? 컨테이너 이미지를 만들면서 빌드 등에는 필요하지만, 최종 컨테이너 이미지에는 필요 없는 환경을 제거할 수 있도록 단계를 나누어 기반 이미지를 만드는 방법 멀티스테이지 빌드를 사용하게 되면 위의 그림처럼 컨테이너 실행 시에는 빌드에 사용한 파일 및 디렉토리과 같은 의존 파일들이 모두 삭제된 상태로 컨테이너가 실행되게 됩니다. 결론적으로 좀 더 가벼운 크기의 컨테이너를 사용할 수 있게 됩니다. D..
[Docker] 이미지 레이어 구조 Dockerfile을 빌드하여 Docker 이미지를 작성하면 Dockerfile의 명령별로 이미지를 작성합니다. 작성된 여러 개의 이미지는 레이어 구조로 되어 있습니다. 다음은 4개의 명령으로 구성된 Dockerfile입니다. # Step 1 : Ubuntu (베이스 이미지) FROM ubuntu:latest # Step 2 : Nginx 설치 RUN apt-get update && apt-get install -y -q nginx # STEP 3 : 파일 복사 COPY index.html /usr/share/nginx/html # STEP 4: Nginx 시작 CMD ["nginx", "-g", "daemon off;"] Dockerfile과 같은 디렉토리에 index.html를 임의로 구성하고 doc..
[Docker] 컨테이너(Container)란? Docker를 이해하기 위해서는 Docker의 배경 기술인 컨테이너 기술에 대한 이해가 필요하다. 컨테이너란? 컨테이너란 호스트 OS상에 논리적인 컨테이너를 만들고, 애플리케이션을 작동시키기 위해 필요한 라이브러리나 애플리케이션 등을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 기술 호스트 OS는 리소스를 논리적으로 분리시키고 여러 개의 컨테이너가 공유하여 사용한다. 오버헤드가 적기 때문에 가볍고 고속으로 작동한다는 것이 특징이다. 보통 물리 서버 상에 설치된 호스트 OS의 경우 하나의 OS 상에서 여러 애플리케이션이 똑같은 리소스를 사용한다. 각 어플리케이션은 데이터를 저장하는 디렉토리를 공유하고, 서버에 설정된 IP주소로 통신을 하기 때문에 미들웨어나 라이브러리 버전이 다른 경우 각..