Docker Ubuntu+Docker+Node.js (Hello World)

황제낙엽 2020.07.12 15:33 조회 수 : 763

sitelink1  
sitelink2  
sitelink3  
extra_vars6  

Ubuntu에 Docker를 설치하고 실행하여 Node.js로 웹서버를 구동하고 Hello World를 출력하는 테스트 프로젝트이다

 

 

Ubuntu를 처음 설치한 상태라면 root 계정으로 로그인이 불가할 것이다

  -> 비밀번호를 설정한 적이 없어서 비밀번호가 틀리다고 나온다

그래서 sudo -i 명령어로 root의 비밀번호를 초기화해주고 로그인 가능 상태로 만들어둬야 작업이 편하다 ( root로 전환후 비밀번호 변경 )

이후 다음의 절차로 테스트 프로젝트를 수행한다

 

 

[터미널1] node.js의 최신 이미지(OS:Debian GNU/Lunux 9)을 다운받는다

user@~:~$ docker pull node

 

 

[터미널1] 작업의 편이성을 위해 root계정으로 전환한다

user@~:~$ su -

 

 

[터미널1] docker container를 실행한다 (host와 guest의 port는 8888로 연결하고 디렉토리도 공유시킨다)

root@~:~# docker run --name node_1 -it -p 8888:8888 -v ~root/tmp:/nodetmp/ node bash

 

 

[터미널1] docker가 실행되면 container내로 진입하여 shell프롬프트가 깜박이는 상태가 된다

  위에서 연결한 디렉토리로 이동한다

root@~:/# cd nodetmp

 

 

[터미널1] 디렉토리 이동후 프로젝트 디렉토리를 생성하고 이동한다

root@~:/nodetmp# mkdir project_nodejs

root@~:/nodetmp# cd project_nodejs

root@~:/nodetmp/project_nodejs#

 

 

* [터미널1] Node Package Manager를 초기화한다 (초기화시 입력해야하는 항목들마다 엔터하여 기본값으로 설정해도 무방하다)

root@~:/nodetmp/project_nodejs# npm init

 

 

* [터미널1] npm으로 http, express 패키지를 설치한다

root@~:/nodetmp/project_nodejs# npm install http

root@~:/nodetmp/project_nodejs# npm install express

 

 

[터미널1] 터미널창을(터미널2) 추가로 오픈하고 root계정으로 전환한다

user@~:~$ su -

 

 

* [터미널2] container와 연결된 디렉토리에서 js를 생성하고 편집한다

root@~:~# cd ~root/tmp/project_nodejs

root@~:~/tmp/project_nodejs# vi app1.js

 

<app1.js 의 내용>

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/html'});

  res.end('Hello World with http');

}).listen(8888, function() {

  console.log('listening...');

});

 

 

* [터미널1] container내에서 node로 host에서 작성한 app1.js 를 실행한다

root@~:/nodetmp/project_nodejs# node app1.js

 

 

* host에서 브라우저를 실행하고 접속한다

hh1.png

 

 

 

 

[터미널2] express모듈을 이용하여 app2.js 를 작성한다

root@~:~/tmp/project_nodejs# vi app2.js

 

 

[터미널1] container내에서 node로 host에서 작성한 app2.js 를 실행한다

root@~:/nodetmp/project_nodejs# node app2.js

 

<app2.js 의 내용>

var express = require('express'); var app = express();

app.get('/', function(req, res) {

  res.send('Hello World with express');

});

app.listen(8888, function() {

  console.log('listening...');

});

 

 

* host에서 브라우저를 실행하고 접속한다

hh2.png

 

 

 

 

번호 제목 sitelink1 글쓴이 날짜 조회 수
» Ubuntu+Docker+Node.js (Hello World) file   황제낙엽 2020.07.12 763
180 rm (파일과 디렉터리를 삭제한다) https://terms.naver.com/entry.nhn?docId=...ryId=59321  황제낙엽 2020.07.12 695
179 우분투(Ubuntu)에서 root로 전환후 비밀번호 변경 file   황제낙엽 2020.07.12 17859
178 [Docker기초] 명령어 리스트 https://blog.naver.com/pjt3591oo/221350092204  황제낙엽 2020.07.11 801
177 cURL, Docker, Portainer 설치 file https://docs.docker.com  황제낙엽 2020.07.11 628
176 cURL file https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_curl  황제낙엽 2020.07.11 728
175 VirtualBox에 우분투(ubuntu-20.04-desktop-amd64.iso) 설치하기 file   황제낙엽 2020.07.11 726
174 Raspberry Pi에 우분투(ubuntu-20.04-preinstalled-server-arm64+raspi.img) 설치하기   황제낙엽 2020.07.10 840
173 리눅스 하드웨어 정보 및 용량 확인   황제낙엽 2020.07.08 2679
172 [Windows PowerShell] ssh, sftp file https://blog.naver.com/asdf2017/221763647776  황제낙엽 2020.07.08 2834
171 apt-get (Advanced Packaging Tool) [1] https://ko.wikipedia.org/wiki/%EC%96%B4%..._%ED%88%B4  황제낙엽 2020.07.08 776
170 [Docker] Docker, Portainer 입문용 블로그 링크 http://blog.naver.com/kidninja  황제낙엽 2020.07.07 714
169 VirtualBox에 라즈비안(2020-02-12-rpd-x86-buster) 설치하기 [1] file   황제낙엽 2020.07.01 748
168 "모니터 끄기" 단축아이콘과 단축키 만들기 file https://blog.naver.com/bizgood4911/221972709556  황제낙엽 2020.06.22 1539
167 문자열 치환하여 변수에 저장 https://blog.naver.com/digitalog/221488405815  황제낙엽 2020.05.21 854
166 도스, 환경변수 http://egloos.zum.com/sirjhswin/v/2371970  황제낙엽 2020.05.21 811
165 [도움말 캡쳐] FOR   황제낙엽 2020.05.21 669
164 [도움말 캡쳐] IF   황제낙엽 2020.05.21 796
163 [도움말 캡쳐] SET   황제낙엽 2020.05.21 670
162 [문법] 배치 명령어 기초 작성법 file https://www.snoopybox.co.kr/1404  황제낙엽 2020.05.21 767