본문 바로가기
반응형

전체 글1065

[TIL] : 125 일일 배움을 위한 Today I Learned ! Docker 도커 보안 적용하는 것을 공부하고 도커 스토리지 드라이버에 대해 공부했다. 2022.02.28 - [Server & System/Docker] - [Docker] : 도커 데몬에 보안 적용하기 --tlsverify 2022.02.28 - [Server & System/Docker] - [Docker] : 도커 스토리지 드라이버 변경하기 --storage-driver 2022.02.28 - [Server & System/Docker] - [Docker] : 스토리지 드라이버 원리, CoW 및 RoW 그리고 이미지와 컨테이너 2022.02.28 - [Server & System/Docker] - [Docker] : AUFS 드라이버 사용하기​ S.. 2022. 2. 28.
[Docker] : AUFS 드라이버 사용하기 AUFS는 데비안 계열에서 기본적으로 사용할 수 있는 드라이버고 오래 사용되어 왔기 때문에 안정성이 좋다고 평가받지만 커널에 포함되어 있지 않아 일부 운영체제에서 사용할 수 없다.(RHEL, CentOS 등) vi /etc/default/docker 우분투에서 환경 설정하는 경로이다. DOCKER_OPTS="--storage-driver=aufs" 이런 설정을 편집기로 추가를 해준다. service docker restart 환경 설정 후 재시작을 꼭 해준다. grep aufs /proc/filesystems AUFS 드라이버를 사용할 수 있는 리눅스 배포판인지 확인을 해본다. nodev aufs라는 출력이 나오면 AUFS를 사용할 수 있는 것이다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하.. 2022. 2. 28.
[Docker] : 스토리지 드라이버 원리, CoW 및 RoW 그리고 이미지와 컨테이너 컨테이너와 이미지의 기본 원리는 이미지는 읽기 전용 파일로 사용되고 컨테이너는 이 위에 컨테이너 레이어를 생성해서 컨테이너의 고유 공간을 생성하는 것이지만 실제로 컨테이너 내부에서 읽기, 쓰기 작업이 일어날 때 드라이버에 따라 Copy on Write(CoW) 혹은 Redirect-on-Write(RoW) 개념을 사용한다. 스냅숏은 원본 파일은 읽기 전용으로 사용하고 이 파일이 변경되면 새로운 공간을 할당하는 것인데 스토리지를 스냅숏으로 만들면 스냅숏 안에 파일이 어디에 저장되어 있는지가 목록으로 저장된다. 이 스냅숏을 사용하다 파일 안에 변화가 생기면 변경된 내역을 따로 관리해 스냅숏을 사용한다. CoW는 스냅숏의 파일에 쓰기 작업을 수행할 때 스냅숏 공간에 원본 파일을 복사하고 쓰기 요청을 반영한다... 2022. 2. 28.
[Docker] : 도커 스토리지 드라이버 변경하기 --storage-driver 도커는 스토리 백엔드 기술로 컨테이너와 이미지를 저장, 관리한다. 보통 자동 설치가 되어 있는데 데미안 계열 운영체제는 deviceampper를 사용하는 것이 대표적이다. docker info | grep "Storage Driver" 위 명령어로 확인할 수 있다. 스토리지 드라이버는 도커 데몬 옵션 중 —storage-driver를 통해 사용할 수 있고 지원하는 드라이버는 OverlayFS, AUFS, Btrfs, Devicemapper, VFS, ZFS 등이 있다. 이 중 하나를 선택해 도커에 적용할 수 있고 적용하게 되면 스토리지 드라이버에 따라 컨테이너와 이미지가 별도로 생성된다. docker --storage-driver=devicemapper 별도 생성된 Devicemapper 파일은 /var.. 2022. 2. 28.
[Spring Boot] : BasicErrorController 오류 페이지 스프링 부트는 에러 페이지를 자동으로 등록하는데 /error이라는 경로로 기본 오류 페이지를 설정한다. 오류가 발생하면 오류페이지로 /error를 기본 요청하고 스프링 부트가 자동 등록한 BasicErrorController는 이 경로를 기본으로 받는다. BasicErrorController는 기본 로직이 개발되어 있어서 우리는 이것을 잘 사용하기만 하면 된다. 간단하게 뷰 템플릿 경로에 오류 페이지 파일을 만들어서 넣어두면 끝이다. 이 BasicErrorController의 뷰 선택 우선 순위도 강의에서 다뤄줬는데 먼저 뷰 템플릿 그 다음이 정적 리소스, 그 다음이 적용 대상이 없을 때 뷰의 이름이다. 각 경로 위치에 상태 코드 이름의 뷰 파일을 넣으면 된다. 추가로 더 자세한 파일명이 우선시 된다. .. 2022. 2. 28.
[Docker] : 도커 데몬에 보안 적용하기 --tlsverify 도커 데몬에 보안 적용하기 --tlsverify 도커 설치 시 보안 연결 설정이 안되어 있다. 실제 운영 환경에서 도커를 사용한다면 보안을 적용해야 한다. 아니면 Remote API를 위해 바인딩된 IP 주소와 포트 번호만 알면 도커를 제어할 수 있기 때문이다. 보안을 적용할 때 사용될 파일은 총 5개다. ca.pem server-cert.pem server-key.pem cert.pem key.pem 클라이언트가 도커 데몬에 접근하기 위해 필요한 파일이 ca.pem, cert.pem, key.pem이다. 서버측 파일 생성 mkdir keyss && cd keys openssl genrsa -aes256 -out ca-key.pem 4096 1. 마지막에 비밀번호를 두 번 입력해 줘서 인증서에 사용될 키.. 2022. 2. 28.
[TIL] : 124 일일 배움을 위한 Today I Learned ! `Docker 도커 데몬에 관한 내용을 공부했다. 2022.02.27 - [Server & System/Docker] - [Docker] : 도커 데몬 실행, 중단하기 2022.02.27 - [Server & System/Docker] - [Docker] : 도커 데몬 설정 2022.02.27 - [Server & System/Docker] - [Docker] : 도커 데몬 제어 명령어 -H 2022. 2. 27.
[Docker] : 도커 데몬 제어 명령어 -H 도커 데몬 제어 : -H -H 옵션은 도커 데몬의 api를 사용할 수 있는 방법을 추가한다. dockerd dockerd -H unix:///var/run/docker.sock 아무런 옵션을 설정하지 않고 실행하면 /var/run/docker.sock을 사용하기 때문에 위에 두 명령어는 차이점이 없는 셈이 된다. -H에 IP 주소와 포트 번호를 입력하면 원격 API인 Docker Remote API로 도커를 제어할 수 있다. Remote API는 도커 데몬이 아니여도 제어가 가능하고 RESTful API 형식이라 HTTP 요청으로 도커를 제어할 수도 있다. dockerd -H tcp://0.0.0.0:2375 위 명령어를 통해 호스트에 존재하는 모든 네트워크 인터페이스의 IP 주소와 2375번 포트를 바.. 2022. 2. 27.
[Docker] : 도커 데몬 설정 도커 데몬에 적용할 수 있는 옵션이 무엇인지 확인하기 위해 dockerd --help 명령어를 입력하면 알 수 있다. 옵션을 직접 추가해서 도커 데몬을 실행할 수도 있다. dockerd --insecure-registry=192.168.99.100:5000 이렇게 사용할 수 있지만 dockerd 명령어로 도커 데몬을 직접 실행하기 보다 도커 설정 파일을 수정하고 도커 데몬이 설정 파일을 읽어 서비스로 실행되게 하는 방법을 주로 사용한다. dockerd -H tcp://0.0.0.0:2375 --insecure-registry=192.168.100.99:5000 --tls=false dockerd로 직접 도커 데몬을 실행하는 명령어이다. vi /etc/default/docker 이것은 우분투 14.04에서.. 2022. 2. 27.
[Docker] : 도커 데몬 실행, 중단하기 도커 데몬 실행 우분투에서는 도커가 설치되면 자동을 서비스를 등록해서 호스트가 재시작되도 자동 실행이 된다. service docker start service docker stop 위 명령어로 도커 데몬을 시작하고 멈출 수 있다. 참고로 레드헷 계열의 OS는 도커를 설치해도 자동 실행으로 설정되지 않는다. systemctl enable docker 위 명령어로 레드헷 계열에서 도커를 자동으로 실행하도록 설정할 수 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 2. 27.
[TIL] : 123 일일 배움을 위한 Today I Learned ! Docker Dockerfile를 좀 더 깊게 사용하기 위한 도커 명령어와 도커 데몬을 공부하기 위해 도커의 구조에 대해 공부하고 있다. 2022.02.26 - [Server & System/Docker] - [Docker] : ADD, COPY 명령어 2022.02.26 - [Server & System/Docker] - [Docker] : ENTRYPOINT, CMD 명령어 2022.02.26 - [Server & System/Docker] - [Docker] : Dockerfile로 빌드할 때 주의해야 할 점 2022.02.26 - [Server & System/Docker] - [Docker] : 도커 데몬 - 도커의 구조 JavaScript 30.. 2022. 2. 26.
[JavaScript 30일 챌린지] : 30일차 두더지 게임을 만드는 미니 프로젝트였다. 2022. 2. 26.
[Docker] : 도커 데몬 - 도커의 구조 which docker 명령어로 도커의 위치를 확인할 수 있다. ps aux | grep docker 실행중인 도커 프로세스도 확인할 수 있다. 도커 구조는 두 가지로 나뉘는데 클라이언트로서의 도커, 서버로서의 도커이다. 실제로 컨테이너를 생성하고 실행하며 이미지를 관리하는 주체는 도커 서버이고, 이는 dockerd 프로세스로서 동작한다. 도커 엔진은 외부에서 API 입력을 받아 도커 엔진의 기능을 수행하는데, 도커 프로세스가 실행되어 서버로서 입력을 받을 준비가 된 상태를 도커 데몬이라고 한다. 도커 클라이언트는 도커 데몬이 API를 입력 받아 도커 엔진의 기능을 수행할 때 API를 사용할 수 있게 CLI를 제공하는 것이 도커 클라이언트다. 사용자가 docker로 시작하는 명령어를 작성할 때 많이 사용.. 2022. 2. 26.
[Docker] : Dockerfile로 빌드할 때 주의해야 할 점 하나의 명령어를 \로 나눠 가독성을 높인다. .dockerignore를 작성해 불필요한 파일을 빌드 컨텍스트에 포함하지 않도록 한다. 빌드 캐시를 통해 기존에 사용한 이미지 레이어를 재사용한다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 2. 26.
[Docker] : ENTRYPOINT, CMD 명령어 ENTRYPOINT CMD와 비슷한데 다른 역할을 한다. 컨테이너가 시작될 때 수행할 명령을 지정한다는 점에서 같지만 커맨드를 인자로 받아 사용할 수 있는 스크립트의 역할을 할 수 있다는 점에서 다르다. entrypoint에 하나의 명령어만 입력할 수도 있지만 일반적으론느 스크립트 파일을 entrypoint의 인자로 사용해 컨테이너가 시작될 때마다 해당 스크립트 파일을 실행하도록 설정한다. CMD 컨테이너가 시작 될 때 실행할 명령어를 설정한다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 2. 26.
[Docker] : ADD, COPY 명령어 ADD ADD에 추가할 파일을 깃과 같은 외부 URL로 지정할 수 있고 tar 파일을 추가할 수도 있다. 단, tar파일을 자동으로 해제해서 추가한다. ADD 사용을 권장하진 않는다. COPY COPY는 로컬 디렉터리에서 읽어 들인 컨텍스트로부터 이미지에 파일을 복사하는 역할을 한다. 사용 형식은 ADD와 같다. ADD와 차이점은 COPY는 로컬의 파일만 이미지에 추가할 수 있지만 ADD는 외부 URL, tar 파일에서도 파일을 추가할 수 있다. 즉, COPY의 기능이이 ADD에 포함되는 셈이다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 2. 26.
[TIL] : 122 일일 배움을 위한 Today I Learned ! Spring Boot 서블릿 예외 처리에 대해 공부했다. 오류 화면을 제공하고 오류 페이지 작동 원리와 필터, 인터셉터에 대해 실습을 진행했다. 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 예외 처리 오류 화면 제공 기능 구현하기 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 예외 처리 오류 페이지 작동 원리 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 서블릿 예외 처리 필터 2022.02.25 - [Framework/Spring Boot] - [Spring Boot] : 인터셉터 예.. 2022. 2. 25.
[JavaScript 30일 챌린지] : 29일차 let countdown; const timerDisplay = document.querySelector('.display__time-left'); const endTime = document.querySelector('.display__end-time'); const buttons = document.querySelectorAll('[data-time]'); function timer(seconds) { // clear any existing timers clearInterval(countdown); const now = Date.now(); const then = now + seconds * 1000; displayTimeLeft(seconds); displayEndTime(then); countdo.. 2022. 2. 25.
[Docker] : Onbuild, Stopsignal, Healthcheck, Shell Onbuild, Stopsignal, Healthcheck, Shell Onbuild 빌드된 이미지를 기반으로 다른 이미지가 Dockerfile로 생성될 때 실행할 명령어를 추가한다. FROM ubuntu:14.04 RUN echo "this is onbuild test" ONBUILD RUN echo "onbuild!" >> /onbuild_file "onbuild!" >> /onbuild_file을 통해 onbuild!라는 명령어가 최상위 디렉터리의 onbuild_file에 저장되도록 지정했다. Stopsignal 컨테이너가 정지될 때 사용될 시스템의 콜 종류를 지정한다. 디폴트 값은 SIGTERM으로 설정되어 있지만 선택도 할 수 있다. FROM buntu:14.04 STOPSIGNAL SIGKIL.. 2022. 2. 25.
[Docker] : ENV, VOLUME, ARG, USER ENV, VOLUME, ARG, USER ENV는 Dockerfile에서 사용 될 환경 변수를 지정한다. 이미지에도 저장이 되기 때문에 빌드된 이미지로 컨테이너를 생성하면 이 환경변수를 사용할 수 있다. FROM ubuntu:14.04 ENV test /home WORKDIR $test RUN touch $test/mytouvhfile test라는 환경변수에 /home라는 값을 설정했다. VOLUME은 빌드된 이미지로 컨테이너를 생성했을 때 호스트와 공유할 컨테이너 내부 디렉터리를 설정한다. JSON 배열 형식으로 여러개 사용도 되고 VOLUME /home/dir /home/dir2 로도 사용할 수 있다. FROM ubuntu:14.04 RUN mkdir /home/bolume RUN echo test .. 2022. 2. 25.
[Docker] : 도커 멀티 스테이지 활용해 빌드하기 멀티 스테이지를 이용한 Dockerfile 빌드하기 애플리케이션을 빌드할 때 많은 의존성 패키지, 라이브러리를 필요로 한다. package main import "fmt" func main() { fmt.Println("hello word") } main.go 파일의 내용 , 텝과 공백 위치 조심해야 한다. FROM golang ADD main.go /root WORKDIR /root RUN go build -o /root/mainApp /root/main.go CMD ["./mainApp"] main.go를 컴파일하고 출력 프로그램을 실행하는 Dockerfile docker build . -t go_helloworld 이제 빌드를 해본다. docker images 명령어 확인 후 실행해 보면 내용에 비.. 2022. 2. 25.
반응형