iT邦幫忙

2021 iThome 鐵人賽

DAY 14
0
DevOps

以 Docker 為始的多種開源服務初探系列 第 14

Day 14 建一個 Node.js 容器

今天決定安裝一個 nodejs - 容器來試試

  1. 建立一個 Nodejs 的容器 - 從官方直接下載指定版本 12.19
# -i 互動模式,可向容器輸入指令和資料
# -t 分配給這個 container 一個終端機,這樣才能互動
# --rm 當你停止這個 container 後,就會自動刪除
# --name 自訂你的容器名稱
# node:12.19 為 node 的版本容器名
# /bin/bash 由於是互動模式,也就是啟動後就進入容器內的 /bin/bash 目錄
sudo docker run -it --name nodejs12 node:12.19 /bin/bash
  1. docker 會先看 local 端的 Image 內是否有 node:12.19,如果沒有的話,會從遠端抓取。因為是第一次裝,所以會出現以下訊息:
# Unable to find image 'node:12.19' locally...
  1. 在容器中,輸入以下指令來看是否安裝好了
node -v #v12.19.1
  1. 當然你也可以將 local 端的資料,隨著建立新容器時一同複製進去。將以下內容命名為 time.js,並放置於 local 端目錄:
// 每秒印出時間, /user/time.js
function displayCurrentTime(){
	const date = new Date()
	console.log(date.toString())
}

setInterval(displayCurrentTime, 1000)
  1. 再起一個新的 Nodejs 容器
# 這跟先前建立的 nodejs12 是兩個完全獨立的環境
sudo docker run -v /user/time.js:/time.js -it --name nodejs12-2 node:12.19 /bin/bash
  1. 在該容器中,輸入以下指令,時間就會印出在終端機上
node time.js
# Sat Aug 21 2021 09:33:00 GMT+0000 (Coordinated Universal Time)
# Sat Aug 21 2021 09:33:01 GMT+0000 (Coordinated Universal Time)
# Sat Aug 21 2021 09:33:02 GMT+0000 (Coordinated Universal Time)
# ......
  1. 最後在過程中若有不小心建錯的容器,可以使用 docker system prune 來清除

小結

從以上的操作中,可以得知以下事項:

  1. 每一個容器中的環境是獨立的,所以當你發現新起的容器中少複製了一些 local 端的檔案進去,你可以選擇重新建立一個即可。
  2. 承上,如此反覆操作後,使用 docker-compose 的腳本指令來起容器,著實可以省下不少重複的工作

上一篇
Day 13 Mailhog - 模擬 SMTP 郵件服務的開發利器
下一篇
Day 15 再手動安裝個 Python3 容器看看
系列文
以 Docker 為始的多種開源服務初探30

尚未有邦友留言

立即登入留言