Last active
May 24, 2019 07:16
-
-
Save wxingheng/f53cfd102e516ba4046405817b408e7f to your computer and use it in GitHub Desktop.
docker node
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
**一次简单的docker前端应用** | |
mkdir docker-node-server | |
cd docker-node-server | |
npm init | |
yarn add express | |
tauch Dockerfile | |
```language | |
FROM node:8 | |
# Create app directory | |
WORKDIR /usr/src/app | |
# Install app dependencies | |
# A wildcard is used to ensure both package.json AND package-lock.json are copied | |
# where available (npm@5+) | |
COPY package*.json ./ | |
RUN yarn | |
# If you are building your code for production | |
# RUN npm ci --only=production | |
# Bundle app source | |
COPY . . | |
EXPOSE 8080 | |
CMD [ "npm", "start" ] | |
``` | |
tauch .dockerignore | |
```language | |
node_modules | |
npm-debug.log | |
``` | |
tauch server.js | |
```language | |
'use strict'; | |
const express = require('express'); | |
// const path = require("path"); | |
// Constants | |
const PORT = 8080; | |
const HOST = '0.0.0.0'; | |
const app = express(); | |
// app.use(express.static(path.join(__dirname, "./public/dist"))); | |
app.use(express.static( "/usr/src/app/public")); | |
app.listen(PORT, HOST); | |
console.log(`Running on http://${HOST}:${PORT}`); | |
``` | |
mkdir public | |
cd public | |
mkdir dist | |
tauch index.html | |
```lang<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<meta http-equiv="X-UA-Compatible" content="ie=edge"> | |
<title>Document</title> | |
</head> | |
<body> | |
docker iamges inner html | |
</body> | |
</html> | |
``` | |
vim package.json | |
```language | |
{ | |
"name": "docker-node-start", | |
"version": "1.0.0", | |
"description": "", | |
"main": "server.js", | |
"scripts": { | |
"start": "node server.js" | |
}, | |
"dependencies": { | |
"express": "^4.16.1" | |
}, | |
"author": "wuxh", | |
"license": "ISC" | |
} | |
``` | |
基本内容完成,可以尝试 npm start | |
http://127.0.0.1:8080 可以正常访问 ”docker iamges inner html“ 继续 | |
**开始构建镜像** | |
docker build -t node-web-app:v1.0 . | |
docker images | |
**基本运行容器, 主要测试是否正确** | |
sudo docker run --name test001 -d -p 3007:8080 node-web-app:v1.0 | |
docker ps | |
http://127.0.0.1:3007 可以正常访问 ”docker iamges inner html“ 继续 | |
**映射宿主机运行容器** | |
sudo docker run --name test002 -v /Users/wuxh/Documents/coder/github/example/Docker/public/build:/usr/src/app/public -d -p 3008:8080 | |
http://127.0.0.1:3007 可以正常访问 /Users/wuxh/Documents/coder/github/example/Docker/public/build | |
最终目录结构 | |
 | |
**命令参考** | |
// 开始构建镜像 | |
docker build -t node-web-app:v1.0 . | |
// 查看镜像列表 | |
docker images | |
// 删除不需要的镜像 | |
docker rmi IMAGE_ID | |
// 运行一个容器<可能需要登录 或者 sudo> | |
sudo docker run --name test001 -d -p 6060:8080 node-web-app:v1.2 | |
// 运行一个容器, 并将容器内部与外部映射 <可能需要登录 或者 sudo> | |
sudo docker run --name test002 -v :/usr/src/app/public -d -p 3008:8080 node-web-app:v1.2 | |
// 停止一个容器 | |
docker stop IMAGE_ID | |
// 删除不需要的容器 | |
docker rm psname | |
// 进入容器 | |
docker exec -it d0ed56c70a40 /bin/bash | |
// 导出镜像 | |
docker save -o node-web-app.tar node-web-app:v1.2 | |
// 导入镜像 | |
docker load < node-web-app.tar | |
// 查看磁盘空间 | |
df -h | |
[参考](https://wxingheng.github.io/#/user/blog/details/f53cfd102e516ba4046405817b408e7f) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment