프로그래밍 (18) 썸네일형 리스트형 Docker 개념과 기초 연습 4(재빌드) Docker 컨테이너로 어플을 실행 할 때 이미지를 만들기 위해 빌드 하고 run 해서 도커 이미지의 컨테이너를 만들고 실행한다. 그러면 여기에 궁금증이 생긴다. 만약 코드가 변경된다면 항상 빌드 후에 런을 매번 해주어야 하나? 변경 전 코드 FROM node:10 WORKDIR /usr/src/app #전체 코드 복사 COPY ./ / # package.json 종속성 다운 RUN npm install EXPOSE 8080 CMD ["node", "index.js"] 변경 후 코드 FROM node:10 # 먼저 워킹 dir 생성 WORKDIR /usr/src/app #package.json만 먼저 복사 COPY package.json ./ # package.json 종속성 다운 RUN npm inst.. Docker 개념과 기초 연습 3(node js 앱 만들기) 도커 이미지가 생성되는 순서는 1. 도커 파일이 작성된다. 도커 파일은 도커 이미지를 만들기 위한 설정들이 들어가 있는 파일이다. 그러면 2. 도커 클라이언트에서 도커 파일에 입력된 내용이 전달되고 3. 도커 서버에서는 도커 클라이언트에 전달된 작업들을 한다. 그 다음 4.이미지가 생성이 된다. 그러면 도커 파일들은 어떻게 만들까? 1. (FROM) 베이스 이미지를 선택한다. 만약 NODEJS 기반으로 프로젝트를 만들고 싶으면 베이스 이미지를 nodejs로 설정해준다. 2. (COPY) 복사할 파일들을 선택한다. 3. (RUN) 베이스 이미지 이외의 파일을 받기 위한 명령어를 쓴다. 4. (CMD) 컨테이너를 시작할 때 실행 될 명령어를 써준다. FROM microsoft/nanoserver COPY t.. Docker 개념과 기초 연습 2(run과 도커 명령어) 저번시간에 밑에 명령어를 이용해서 쥬피터 노트북 이미지 파일을 pull 받고 run 시켰다.(run 명령어를 쓰면 기존에 이미지가 없으면 자동으로 pull 받는다.) docker run -p 8888:8888 jupyter/scipy-notebook:17aba6048f44 run명령어는 create와 start 가 동시에 실행되는 명령어기 때문에(이미지가 기존에 있다면 pull은 재실행되지 않는다.) run을 매번 실행한다면 매번 컨테이너가 만들어질 것이다. 그래서 run은 한번만 써야 하고 그 이후로는 start를 써야 한다. 컨테이너를 삭제하고 싶으면 -rm을 하면 된다. 만약 이미지를 삭제하고 싶으면 rmi 을 쓰면 된다. 도커로 jupyter/minimal-note 북을 만들어내는 명령어, -p는.. Docker 개념과 기초 연습 1(쥬피터 노트북 설치와 도커허브) 도커는 이미지, 컨테이너로 구성되어있는데 이미지는 필요한 프로그램, 라이브러리, 소스를 설치한 뒤 만든 하나의 파일이다. 이미지의 종류는 정말 많은데 만약 파이썬이 필요하다면 파이썬을 검색해서 쓰면 되고 MongoDB가 필요하다면 몽고 디비를 갖다가 쓰면 된다. 컨테이너는 말 그대로 물류센터의 컨테이너 같이 독립된 공간에서 실행한 가상 환경이다. 컨테이너는 가상 머신을 이용하여서 마이크로 서비스를 분리하기 때문에 컴포넌트가 충돌하는 것을 방지 할 수 있다. 도커의 도움말이 나온다. docker 도커에서 mongodb 를 검새한다. docker search mongodb 도커에서 쥬피터 노트북을 검색한다. docker search jupyter 도커에서 쥬피터 노트북을 설치한다. docker run -p .. Node JS 비밀번호 Bcrypt로 암호화 시키기 npm install bcrypt --save Bcrypt를 터미널에서 설치한다. const bcrypt = require('bcrypt') //이것은 솔트를 생성하고 솔트의 자릿수를 이용해서 비밀번호를 암호화시킨다. const saltRounds = 15; userSchema.pre('save', function( next ) { ${Schema.pre()를 쓰면 저장 하기 전에 이 안에 있는 것들을 시행하고 저장된다.} //비밀번호를 암호화 시킨다. bcrypt.genSalt(saltRounds, function(err, salt) { if(err) return next(err) bcrypt.hash(user.password, salt, function(err, hash) { // Store hash.. [mac] git에서 필요하지 않은 것들을 gitignore 로 옮긴 다음 push 하는 방법 git rm -r --cached . git add . git commit -m 'remove' git push 깃에 파일을 올릴 때 node_modules 같은 파일은 없애고 올린다. 하지만 이미 깃으로 올렸을 때 그것을 .gitignore 에 넣더라도 깃에는 계속 올라가 있다. 이럴 때는 올라와 있는 파일들 중 트래킹중인 파일 리스트를 삭제하고 깃을 커밋한다. Mongo DB 와 노드JS 연결 cloud.mongodb.com/ MongoDB Cloud MongoDB Cloud is a unified data platform for modern applications and includes a global cloud database, search, data lake, mobile, and application services. www.mongodb.com 위에 홈페이지에 가서 회원가입을 한 이후 로그인을 한다. Build Cluster를 클릭 한 다음 AWS를 클릭한다. free tier 가 있는 지역 중에 가장 가까운 곳을 클릭 한다. Demo sandbox 클릭 한 다음 Cluster Name을 설정한다. Mongo DB Cluster 가 다 생성 되면 유저를 생성한다. sandbox에 co.. Node js와 Express JS 다운로드 node -v 우선 노드 JS가 설치되어있는지 터미널에서 확인한다 nodejs.org/en/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 설치되어있지 않다면 위에 홈페이지에 가서 노드 JS를 다운로드한다. 최신버전 말고 많은 사람들이 다운받은 Recommended for most users 버전을 다운 받는 것을 추천한다. 프로젝트를 만들 폴더를 생성한다. 폴더로 가서 npm package를 만들어야 되는데 해당 폴더 터미널로 가서 npm init 을 한다. npm init 여기서 author, 라이센스 등을 입력하고 난 다음 해당 폴더로 가면 패키지가 설치되어있다. 그러면 packag.. 이전 1 2 다음