일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 스프링
- 42seoul
- CD
- IOS
- 소켓
- MySQL
- 리눅스
- Xcode
- DBMS
- 티스토리챌린지
- 아이패드다이어리
- 네트워크
- 프로그래밍언어론
- AI
- JPA
- 오라클
- javascript
- libasm
- 인공지능
- 다이어리
- 오블완
- springboot
- Spring
- 스프링부트 웹 소켓
- jenkins
- swift
- 스프링부트
- 데이터베이스
- sql
- CI
- Today
- Total
Hi yoahn 개발블로그
[42Seoul/ft_server] docker 와 docker file 본문
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
오십보백보 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
'42 SEOUL > 배운 것들 정리' 카테고리의 다른 글
[42Seoul/ft_server] nginx 설정파일 (autoindex / ssl / redirect 설정) (0) | 2021.02.16 |
---|---|
[42Seoul/ft_server] php, autoindex (0) | 2021.02.13 |
[42SEOUL/ft_server] Nginx 란? (0) | 2021.02.04 |
[42SEOUL/ft_server] SSL protocol (0) | 2021.02.03 |
ft_server 프로젝트 수행 과정 (1) | 2021.02.01 |