docker multi stage build 어플리케이션의 빌드를 위해 도커 파일을 작성할 때, 필요한 패키지(우툰부라던지)를 FROM 명령어로 가져온다. 그래서 단순한 HELLO WORLD 서버라도 빌드된 이미지의 용량이 크다. 이미지의 크기를 줄이기 위해 Multi Stage Build를 사용할 수 있다. 이는 하나의 Dockerfile 안에 여러번의 FROM을 적어 앞서 빌드한 이미지를 사용하는 것이다. (아래 예시 참고)
Dockerfile을 작성하면 빈 OS에서부터 내 소스 코드를 복사해 서버를 컨테이너로 띄우는 것까지 자동으로 할 수 있다. Dockerfile에 작성된 대로 이미지를 만들고(build), 이 이미지를 컨테이너로 만들게 된다. Dockerfile 작성 정해진 명령어를 사용해야 한다. FROM, RUN, COPY, ADD, WORKDIR, CMD Dockerfile 빌드 내가 만든 도커 파일을 빌드해 이미지로 만든다. docker build -t mybuild ./ -t는 이미지의 이름, 현재 디렉터리에서 불러옴 이미지가 빌드되면, 빌드된 이미지로 컨테이너를 실행한다. docker run -d -p --name myserver mybuild 빌드 콘텍스트 이미지 빌드를 시작하면 도커는 빌드 콘텍스트(Doc..
도커의 이미지는 도커 허브라는 중앙 이미지 저장소에서 내려 받을 수 있다. 도커 허브에서는 누구나 이미지를 올리고 다운받을 수 있다. 어떤 이미지가 올라가 있는지 찾아보기 위해 docker search 명령어를 사용한다. docker search ubuntu 도커 컨테이너를 이미지로 docker commit [옵션] 컨테이너_이름 저장소:태그 이미지 구조 이미지는 계속 레이어가 쌓이는 구조이기 때문에, 앞서 참조하는 이미지가 없어야만 이미지가 실제로 삭제된다. 그렇지 않을 경우 이름만 삭제하고 파일은 남아있다. 이미지 추출 docker save -o 파일명 이미지_이름 으로 도커에 있는 이미지 파일을 추출할 수 있다. docker save -o ubuntu_14_04.tar ubuntu:14.04 doc..
도커 컨테이너가 실행되는 동안 생기는 로그를 다양한 방식으로 저장할 수 있다. 1. json 파일 로그 아래 명령어로 mysql 컨테이너를 실행한다. docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=1234 \ mysql:8 컨테이너 로그를 확인하는 방법은 logs 명령어를 사용하면 된다. 옵션으로 --tail(마지막 몇줄만 출력), --since(지정한 유닉스 타임 이후 부터의 로그만 출력), -f(실시간으로 출력) 등이 있다. docker logs mysql docker logs --tail 2 mysql docker logs --since 1667206800 mysql docker logs -f -t mysql 로그는 json 파일로 자동으로 저장된다. ..
시작하세요! 도커/쿠버네티스를 읽고 나름대로 정리한 내용입니다. 도커 포트 포워딩 도커 컨테이너에서 돌아가고 있는 프로그램에 외부에서 접근할 때 외부 → 호스트 컴퓨터 → 도커 컨테이너 순서를 거치게 된다. 접근을 허용하기 위해 도커 컨테이너가 올라가 있는 컴퓨터(호스트)의 port와 컨테이너의 port를 연결(바인딩) 해줘야 한다. -p 호스트의_포트_번호:컨테이너의 _포트_번호 와 같이 -p 옵션을 사용해 바인딩 해줄 수 있다. docker run -i -t -p 80:80 ubuntu:14.04 컨테이너에 리액트로 만든 프론트엔드 서버가 돌아가고 있다고 한다면, 브라우저(외부)에서 localhost의 80 포트로 접속하고, 이는 도커 컨테이너의 80 포트로 연결된다. 도커 run 명령어의 -d 옵션..
시작하세요! 도커/쿠버네티스를 읽고 나름대로 정리한 내용입니다. 도커란? 가상 머신과 비슷하지만 더 가벼운 엔진 도커를 쓰는 이유는 프로그램의 개발 환경과 배포 환경을 쉽게 똑같이 만들 수 있기 때문이다. 리눅스, 맥, 윈도우에서 모두 사용할 수 있다. 따라서 꼭 백엔드 서버를 위해서만 쓸 수 있는 건 아니다. 도커의 기본 단위는 이미지와 컨테이너다. 쉽게 말해 이미지라는 실행 파일이 있고, 이 이미지를 띄우면 하나의 컨테이너가 돌아간다. 이미지는 직접 만들수도 있고, 이미 누가 올려놓은 것을 클라우드에서 다운로드할 수도 있다. 이미지의 종류로는 내가 개발한 프론트엔드 서버, 백엔드 서버가 될 수 도 있고, 리눅스 같은 운영체제, mysql 같은 DB 등 다양하다. 보통 우리가 파일을 실행하면 한번에 하..