반응형
Dockerfile은 사용자가 구축하고자 하는 Docker 컨테이너의 configuration 정보를 담는 설정 템플릿입니다. 이 스크립트 파일 안에는 기본 뼈대가 될 컨테이너 이미지(ex., Ubuntu, NginX 등), 환경 변수, 빌드 후 실행할 코드 등을 정의할 수 있습니다. 1. Dockerfile 기본 구문 FROM 배포할 컨테이너 기본 이미지를 지정합니다. FROM debian:buster-slim ENV 컨테이너 동작 과정에서 사용할 환경 변수를 설정합니다. # ENV [변수 명] [변수 값] ENV NGINX_VERSION 1.20.1 WORKDIR 컨테이너를 실행했을 때, 홈 디렉토리 역할을 할 경로를 지정합니다. 뒤에 설명할 RUN, CMD과 같은 명령어도 해당 경로를 기준으로 실행..
1. 가상화/클라우드의 역사 흔히 머신(Machine)이라고 하면 컴퓨터나 서버를 가리킵니다. 이 머신들은 하드웨어, 즉 CPU, RAM, 하드디스크, 네트워크 인터페이스 카드 등의 요소들을 자체적으로 갖추고 있으며 바로 그 위에 운영 체제와 애플리케이션이 동작하는 모양새가 일반적으로 상상할 수 있는 머신의 형태입니다. 서버 가상화의 개념은 2000년대 초에 알려지기 시작했습니다. 엔지니어들은 하이퍼바이저(hypervisior)라는 것을 발명했고, 이 하이퍼바이저는 동일한 하드웨어 위에 둘 이상의 운영체제를 올릴 수 있게 되었습니다. 그와 동시에, 하이퍼바이저에서 생성된 각 운영체제들을 특별히 가상 머신(Virtual Machine)으로 부르기 시작했습니다. 대표적인 Hypervisior로는 KVM(Op..
Docker가 생성한 컨테이너, 시스템, 가상 네트워크 등은 사실 일시적으로만 유지되는 휘발성 자원입니다. 컨테이너 내부의 데이터는 호스트 머신 어딘가에 저장되어 있기야 하겠지만, 단일 메모리 위치에 블럭 형태로 모여 있는 것도 아닐 뿐더러, 컨테이너가 종료 또는 재실행되는 과정에서 해당 영역이 다른 데이터로 덮어 씌워질 수 있습니다. 열심히 컨테이너 안에서 작업을 하거나 데이터를 수집했는데 이런 것들이 모르는 사이에 날라가면 좋진 않겠죠. 시스템이든 애플리케이션이든 언제 어떻게 업데이트 해야되고 확장, 재배치해야 할지는 당장 알 수 없는 일이니까요. 다행히도, Docker는 컨테이너 내부의 데이터가 영구적으로 유지되고 안전하게 관리 받을 수 있게 하는 체계가 존재합니다. 1. Docker의 데이터 관리..
컨테이너 이미지 다운로드 Docker Hub를 통해 구동시킬 앱의 이미지를 미리 내려받습니다. # 이미지 다운로드: "docker image pull [image 이름]:[version]" # version을 명시하지 않으면 가장 최신 버전으로 내려받습니다. docker pull nginx # 사용가능한 이미지 조회 docker image ls 컨테이너 생성 갖고 있는 이미지를 이용하여 컨테이너를 생성하고 관리하는 명령어입니다. 본 포스트에서는 Nginx를 생성하여 4885번 포트로 서비스를 운영하는 예시를 담았습니다. # 컨테이너 생성 및 실행: "docker run [options] [Image 명]" # 옵션 종류: # --detach (-d): 백그라운드 실행 체크, # --name: 컨테이너 이..
1. Docker 네트워크 구성 Docker 컨테이너는 격리된 환경에서 개별적으로 동작하기에, 초기에는 컨테이너간의 통신이 막혀있습니다. 컨테이너 간의 연결을 위해 주로 제공되는 네트워크 형태는 다음과 같습니다. Bridge: 여러 컨테이너를 서로 연결시키 위한 가상 private 네트워크 Overlay: 서로 다른 호스트 및 도커 데몬에 속하는 컨테이너끼리 연결하는 네트워크 (주로 Swarm에서 쓰임) Host: 호스트 컴퓨터와 동일한 환경에서 동작하는 네트워크 None: 네트워킹이 일체 불가능한 상태 2. Bridge 네트워크 이 중에서 Bridge 네트워크는 Docker의 기본 네트워크 옵션입니다. 네트워크 생성 명령어를 입력할 때 특별한 타입을 지정하지 않으면 Bridge 네트워크가 만들어진다고 ..
본 포스트는 Docker Desktop 없이 WSL(Windows Subsystem for Linux)에 Docker를 설치하는 과정을 요약하였습니다. 1. WSL 2 활성화 wsl --set-default-version 2 2. WSL용 Ubuntu 설치 Docker 엔진이 설치될 Ubuntu 배포판을 설치합니다. 관련 절차는 아래 포스트에도 정리되어있으니 참고해주세요. https://citizen.tistory.com/12 3. Docker 설치 패키지 업데이트 sudo apt update && sudo apt upgrade 의존성 추가 sudo apt install --no-install-recommends apt-transport-https ca-certificates curl gnupg2 . /..