Hi yoahn 개발블로그

[42Seoul/ft_server] docker 와 docker file 본문

42 SEOUL/배운 것들 정리

[42Seoul/ft_server] docker 와 docker file

hi._.0seon 2021. 2. 10. 17:56
반응형

1. Docker

도커는 리눅스의 응용 프로그램들을 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다.

 

나는 vmware와 비슷한 역할을 하는 것으로 이해했다. 차이가 있다면 도커가 더 가벼운 용량, 빠른 실행 속도 정도로 이야기 할 수 있다.

차이가 생기는 이유는 vmware는 하드웨어 수준에서 가상화가 이루어지고 docker 는 리눅스에서 운영체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공한다.

vmware와 같은 가상머신은 하드웨어 수준에서 가상화가 이루어지므로 각각의 가상머신마다 OS를 설치해야 한다. 따라서 가상머신 파일에는 os가 포함되어 용량이 커지고 부팅이 느릴 수 있다.

 

Docker

도커는 OS 수준에서 추상화가 이루어지는 것으로 하드웨어를 분리하지 않고 하나의 머신 위에서 동작하며 OS 커널을 공유한다.

도커는 매우 가볍기 때문에, 하나의 서버나 가상 머신이 여러 컨테이너들을 동시에 구동할 수 있다.

 

도커는 컨테이너를 사용하여 리소스를 격리시키고, 서비스를 제한시키며, 프로세스를 예비할 수 있다.

이를 통해 자신만의 프로세스 id 공간, 파일 시스템 구조, 네트워크 인터페이스를 가지고 운영체제에 대해 개인화된 관점을 갖게 한다.

 

Docker container Docker Image
다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스 제공
호스트 OS와 운영체제 커널을 공유하여 실행이 빠르다

컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 상태값을 가지지 않고, 변하지 않음

컨테이너는 이미지를 실행한 상태로가 볼 수 있고, 추가되거나 변하는 것은 컨테이너에 저장됨.

같은 이미지에서 여러개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나  컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남음

cultivo-hy.github.io/docker/image/usage/2019/03/14/Docker정리/

 

2. Docker File

도커 이미지를 만들기 위한 설정 파일이다. 여러가지 명령어를 토대로 Docker file 을 작성하면 설정된 내용대로 docker image 를 만들수 있다. 

# Dockerfile
FROM debian:buster

# image에 메타데이터 추가
LABEL maintainer "yoahn<yoahn@student.42seoul.kr>"

# 쉘 명령어 실행
RUN apt-get update && apt-get install -y \
	nginx \
    mariadb-server \
    php-mysql \
    php-mbstring \
    openssl \
    vim \
    wget \
    php7.3-fpm

COPY ./srcs/run.sh ./
COPY ./srcs/default ./tmp
COPY ./srcs/wp-config.php ./tmp
COPY ./srcs/config.inc.php ./tmp

EXPOSE 80 443

CMD bash run.sh
  • FROM
    도커에 설치할 OS라고 생각하면 될 것 같다
  • LABEL
    메타데이터를 추가하기 위한 것
  • RUN
    쉘 명령어를 실행하고 결과를 커밋함
  • COPY
    호스트 OS의 파일 또는 디렉토리를 컨테이너 안의 경로로 복사
  • EXPOSE
    이 컨테이너가 해당 포트를 사용할 예정임을 사용자에게 알려줌
    실제 포트를 열기 위해서는 docker run 에서 -p옵션 사용
  • CMD
    생성된 컨테이너를 실행할 명령어 지정
    docker run 하면 실행되는 명령어들이 들어있다.

 

www.docker.com/resources/what-container

 

What is a Container? | Docker

A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. Learn more.

www.docker.com

stitchcoding.tistory.com/2

 

오십보백보 ft_server 시작하기

들어가기에 앞서 저는 웹 서버나 도커에 대한 지식이 0인 상태로 시작했습니다. 과제를 시작하기 전에는 '도커'와 '웹 서버'라는 단어만 들어봤고 이에 대한 개념은 지금도 명확하진 않습니다.

stitchcoding.tistory.com

khj93.tistory.com/entry/Docker-Docker-File-작성하기-명령어

 

[Docker] Docker File을 이용하여 Docker Image만들기

Docker File Docker File이란 Docker Image를 만들기 위한 설정 파일입니다. 여러가지 명령어를 토대로 Docker File을 작성하면 설정된 내용대로 Docker Image를 만들 수 있습니다. 이전 포스트에서도 설명했듯이

khj93.tistory.com

hoony-gunputer.tistory.com/entry/docker-file-작성

 

docker file 작성

Docker file 작성 이미지 생성하는 방법 개발한 애플리케이션을 컨테이너화할 때 이전까지는 아래의 방법과 같이 진행했습니다. 아무것도 존재하지 않는 이미지(ubutu, Centos 등)로 컨테이너를 생성

hoony-gunputer.tistory.com

velog.io/@hidaehyunlee/ftserver-총-정리-도커-설치부터-워드프레스-구축까지

 

[ft_server] 총 정리 : 도커 설치부터 워드프레스 구축까지

과제 시작부터 마무리까지 기록한 내용들.

velog.io

 

반응형
Comments