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

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

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 글쓴이 날짜 조회 수
195 WSL 설치후 VirtualBox가 구동이 안됨 file   황제낙엽 2020.08.04 75
194 Windows Terminal http://Microsoft Store  황제낙엽 2020.08.03 10
193 Windows 10에 Linux용 Windows 하위 시스템 설치(WSL) https://docs.microsoft.com/ko-kr/windows/wsl/install-win10  황제낙엽 2020.07.31 268
192 tar, gz file   황제낙엽 2020.07.19 14
191 dig - 네임 서버(DNS) 진단을 위한 룩업 유틸리티 https://www.codns.com/b/B05-110  황제낙엽 2020.07.19 62
190 [Docker] docker private registry on raspberry pi (https private registry, letsencrypt standalone auth) secret https://bloodguy.tistory.com/entry/Docke...spberry-pi  황제낙엽 2020.07.17 0
189 [Docker] private registry 설치/운용, OpenSSL, S3 저장소 이용, Authentification 추가 secret https://novemberde.github.io/2017/04/09/...try_0.html  황제낙엽 2020.07.17 0
188 [Docker] 도커 레지스트리: 프라이빗 도커 이미지 저장소(설치부터 S3 연동까지) secret https://www.44bits.io/ko/post/running-do...s3-storage  황제낙엽 2020.07.17 0
187 [Docker] docker private registry(도커 사설 레지스트리)에 대하여 https://www.44bits.io/ko/post/running-do...s3-storage  황제낙엽 2020.07.17 19
186 [Docker] Portainer for local Docker environments on Windows 10 file https://lemariva.com/blog/2018/05/tutori...windows-10  황제낙엽 2020.07.14 25686
185 netsh 명령으로 프로그램을 방화벽 규칙에 등록하기 file   황제낙엽 2020.07.14 41
184 Virtualbox : VT-x is not available 오류 조치 방법 file http://blog.naver.com/PostView.nhn?blogI...1315290857  황제낙엽 2020.07.14 13
183 Windows에서 포트 포워딩(Port Forwarding) 설정하기 - Netsh https://www.tuwlab.com/ece/29011  황제낙엽 2020.07.14 11
182 리눅스 OS 버전 확인 (ubuntu, debian)   황제낙엽 2020.07.13 57
» Ubuntu+Docker+Node.js (Hello World) file   황제낙엽 2020.07.12 90
180 rm (파일과 디렉터리를 삭제한다) https://terms.naver.com/entry.nhn?docId=...ryId=59321  황제낙엽 2020.07.12 26
179 우분투(Ubuntu)에서 root로 전환후 비밀번호 변경 file   황제낙엽 2020.07.12 17255
178 [Docker기초] 명령어 리스트 https://blog.naver.com/pjt3591oo/221350092204  황제낙엽 2020.07.11 200
177 cURL, Docker, Portainer 설치 file https://docs.docker.com  황제낙엽 2020.07.11 16
176 cURL file https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_curl  황제낙엽 2020.07.11 15