Docker是一個(gè)開源的應(yīng)用容器引擎,可以方便地打包開發(fā)環(huán)境、應(yīng)用程序和所有依賴項(xiàng),從而實(shí)現(xiàn)快速、高效地部署。Docker的主要優(yōu)勢(shì)在于它可以消除不同環(huán)境之間的不匹配問題,節(jié)省開發(fā)和部署過程中的時(shí)間和資源。
FROM node:8.11.3-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
如上所示的Dockerfile,其中以FROM為開頭的語句指定了基礎(chǔ)鏡像(這里選擇了一個(gè)輕量的Alpine版的Node.js鏡像),WORKDIR為應(yīng)用程序的工作目錄,COPY語句將本地文件夾中的package.json和package-lock.json拷貝進(jìn)去,RUN語句運(yùn)行npm install命令安裝相關(guān)的依賴項(xiàng),COPY語句將本地所有的源代碼拷貝到Docker容器中,EXPOSE語句暴露了應(yīng)用程序的端口,CMD語句則指定了最終啟動(dòng)應(yīng)用程序的命令。
要在本地計(jì)算機(jī)上使用Docker,可以在官網(wǎng)上下載并安裝Docker Desktop,然后使用Docker CLI(命令行接口)進(jìn)行管理。使用docker build命令可以基于Dockerfile構(gòu)建鏡像,使用docker run命令可以啟動(dòng)鏡像并運(yùn)行應(yīng)用程序。另外,Docker Hub作為一個(gè)公共的鏡像倉(cāng)庫(kù),提供了一系列官方和社區(qū)維護(hù)的鏡像供開發(fā)者使用。