목록devops (17)
nocdev
도커 데몬 디버깅 도커 시스템 정보 표시docker system info docker system에 대한 전체 정보가 표시된다. 도커 실시간 이벤트 수신현재 도커 시스템에 발생하는 이벤트를 실시간으로 수신할 수 있다. docker system events 해당 명령어를 입력하면 이벤트 수신이 가능한 상태이다. 새로운 터미널을 하나 더 띄우고 컨테이너 하나를 실행해보자. docker run -d --name my-nginx nginx:latest events 명령어를 입력한 터미널과 다른 터미널에서 nginx 컨테이너를 실행하였다. evnets 명령어를 입력한 터미널이다 새로운 컨테이너가 실행되는 이벤트를 수신하여 정보가 표시된다. 컨테이너를 종료 해보자. docker stop my-nginx 컨테이너 종..
도커 이미지 다루기 - 이미지 경략화 전략 불필요한 패키지 및 파일 제외컨테이너 기술 자체가 하나의 컨테이너에 하나의 서비스를 운영하는 목적으로 개발되었기 때문에 컨테이너 하나에 OS, server 등 여러가지 서비스를 한번에 올리지 않는것이 좋다. 컨테이너 레이어 수 줄이기Dockerfile 내 RUN 옵션이 선언될 때마다 레이어가 하나씩 늘어나게 된다. 최대한 압축 하여 RUN 명령어를 한번에 선언하는것이 좋다. RUN apk add --no-cache bash curl git RUN git clone https://github.com/course-hero/slacktee /slacktee RUN apk del --no-cache git RUN \ apk add --no-cache bash curl ..
도커 이미지 다루기 - 이미지 압축파일 저장 및 불러오기 이미지 압축파일로 저장이미지를 tar 압축파일로 저장한다. docker images docker save -o my-app-v2.tar my-app:v2 ls file my-app-v2.tar 호스트에 있는 도커 이미지를 조회 후 my-app:v2 이미지를 현재 위치한 호스트 디렉토리에 my-app-v2.tar 압축파일로 저장하였다. file 명령어로 해당 파일의 아카이브를 확인하였다. 압축파일 이미지 불러오기tar로 압축한 이미지 파일로 저장한 이미지를 불러와보자. docker rmi my-app:v2 docker images docker load -i my-app-v2.tar docker images 좀더 정확한 확인을 위해 기존에 존재하던 m..
도커 이미지 다루기 - Dockerfile Dockerfile 문법 도커 이미지 빌드해보기 node js 서버를 빌드해보려고 한다. node는 package.json 파일과 server.js파일이 필요하다 Dockerfile 파일 먼저 확인해보자. #Dockerfile FROM node:16 LABEL maintainer="FastCampus Park " LABEL description="Simple server with Node.js" # Create app directory WORKDIR /app # Install app dependencies # A wildcard is used to ensure both package.json AND package-lock.json are copied # wher..
도커 이미지 다루기 - 이미지 빌드 도커 이미지 구조 호스트에 설치되어있는 이미지를 확인 후 상세정보를 조회해보자 docker images #docker images inspect [container] docker image inspect nginx:latest 호스트에 설치되어있는 이미지목록을 조회할 수 있다. 해당 이미지의 레이어들을 확인할 수 있다. dockerfile 없이 이미지 생성 기존 컨테이너를 기반으로 새 이미지를 생성할 수 있다. 우선 새로운 컨테이너를 실행 후 해당 컨테이너를 사용하여 이미지를 생성해보자 docker run -it ubuntu:focal cat > my-file \ hello!!! \ ctrl+c ctrl + p + q 우분투 컨테이너를 실행 후 my-file이라는 파일..
도커 컨테이너 다루기 - 로그 STDOUT/STDERR 도커 로그 출력 흐름도 도커 컨테이너를 사용하지 않는 어플리케이션은 어플리케이션이 제공하는 로그 프레임워크를 사용하여 로그를 출력한다. 도커 컨테이너를 사용하면 어플리케이션 로그를 표준출력(STDOUT)과 표준에러(STDERR) 로 내보내며 도커는 출력과 에러를 로깅 드라이버를 이용하여 처리한다. 로그 확인하기이제 도커 컨테이너에서 로그를 확인해보자 전체로그 확인docker logs [container] docker logs 309 해당 컨테이너의 전체 로그를 확인할 수 있다. 마지막으로 특정 줄까지의 로그 확인docker logs --tail [number] [container] docker logs --tail 5 309 해당 컨테이너의 로그에서..
도커 컨테이너 다루기 - 볼륨 도커 레이어 아키텍처 도커 레이어 구성도 이미지레이어이미지 레이어는 읽기전용 레이어 이며 도커파일을 이용하여 빌드할 때 같이 빌드된다. 재 빌드하지 않는이상 레이어가 삭제되지는 않는다. 우리가 도커 이미지 라고하는 이미지가 이미지레이어 계층에 속해있다. 컨테이너 레이어생성한 이미지를 가지고 컨테이너를 생성할 때 생기는 레이어이며 컨테이너 종료시 삭제가 된다. 컨테이너가 종료되어도 삭제가 되지 않는 3가지 방법을 알아보자 컨테이너가 종료되어도 컨테이너 레이어가 사라지지 않는 방법 기존 컨테이너의 동작 방식기존에는 컨테이너를 생성 후 컨테이너 내에 새로운 파일을 생성하고 컨테이너를 삭제하면 컨테이너가 삭제되면서 생성한 파일도 사라지게된다. 확인해보자 docker run -d -..
도커 컨테이너 다루기 명령어 실행 실행중인 컨테이너에 명령어 실행하기command$ docker run -d --name my-nginx nginx docker ps docker exec my-nginx env 실행중인 nginx 컨테이너의 환경변수를 확인할 수 있다. docker exec -i -t my-nginx bash ls shell로 접속하여 실행중인 nginx 컨테이너에 접근하여 확인할 수 있다. 도커 컨테이너 다루기 네트워크 도커의 네트워크구조도커를 실행할 때 사용할 네트워크를 지정할 수 있다 지정하지 않을 경우에 docker0 라고하는 bridge nework를 사용하게된다 도커 네트워크 구조 구성도 컨테이너 포트 노출 -p 옵션을 이용하여 컨테이너 포트와 호스트의 포트를 연결할 수 있다 ..