步驟:
1.創建Dockerfile
FROM node:10-alpine #基鏡像
RUN mkdir -p /src/app #構建鏡像的過程中run mkdir -p /src/app命令來創建/src/app文件夾
WORKDIR /src/app #將/src/app鏡像設置為工作目錄
COPY package.json /src/app/package.json #(構建鏡像時會將當前目錄下的所有文件copy到docker daemon去,這個叫上下文環境。此處COPY package.json /src/app/package.json是指將上下文環境下的package.json拷貝到/src/app里去)
RUN npm install #構建鏡像時運行npm install
COPY . /src/app #構建鏡像時將上下文環境下的(即docker daemon里的當前目錄)copy到/src/app里去, .dockerignore讓指定文件或文件夾不要被upload上去
EXPOSE 3000 #容器的對外暴露端口是3000
CMD ["npm", "start"]#容器啟動后的初始命令
2. 構建鏡像:
docker build -t my-nodejs-app . -f Dockerfile #這里的. 不要漏掉,指的是dockerfile所在的當前目錄,docker引擎會將當前目錄下的所有文件傳給docker daemon -f 為指定dockerfile的路徑
3. 構建鏡像成功后可以通過docker image |grep '鏡像名' 來查看
4. 生成容器container
docker run -d --name my-nodejs-app -p 3000:3000 my-nodejs-app
以上命令中,-d表示在后台運行
--name 表示生成的容器的名字
-p表示將host上的端口映射到容器的端口上,前面的是host的端口,后面的是容器的端口
最后的my-nodejs-app是鏡像名
5. docker ps 來查看容器,如果容器沒有顯示,用docker ps -a來查看

如上圖, 容器的狀態是exited (1)表明容器沒有正常啟動
6.檢查log查看容器沒有正常啟動的原因:
docker container logs 886c82145c8b
7.啟動容器
docker container start 886c82145c8b
8.重啟容器
docker container restart 886c82145c8b
9.停止容器
docker container stop 886c82145c8b
10.進入容器
docker exec -it 886c82145c8b
