Docker 笔记(构建)
编写 dockerfle
Vue SPA 模板
sh
FROM node:lts-slim
MAINTAINER wolfx
RUN mkdir -p /app
WORKDIR /app
COPY dist/ /app
RUN npm config set registry https://registry.npm.taobao.org
RUN npm install -g http-server
EXPOSE 8080
CMD ["http-server", "/app"]
NuxtJS 模板
sh
FROM node:lts-slim
MAINTAINER wolfx
ENV NODE_ENV=production
ENV HOST 0.0.0.0
RUN mkdir -p /app
COPY ./ /app
WORKDIR /app
EXPOSE 3000
## RUN npm config set registry https://registry.npm.taobao.org
RUN npm config set registry http://127.0.0.1:8889/repository/npm-proxy/
RUN npm install --production
RUN npm run build
CMD ["npm", "start"]
项目中创建一个 .dockerignore
文件来忽略一些直接跳过的文件:
sh
node_modules
npm-debug.log
如何构建
sh
## build image
docker build -t nuxt-demo ./
如何导出
sh
docker save -o myimages.gz nuxt-demo
如何导入
sh
docker load -i myimages.gz
如何运行
sh
## 从容器中的3000映射到容器外8080
docker run --name nuxt-demo -dt -p 8080:3000 nuxt-demo
容器间通信
sh
## --link <name or id>:alias
## 创建并启动名为node的容器,并把该容器和名为mysql的容器链接起来
docker run -d --name node --link mysql:mysql-host node:8
如何让容器支持后台服务(特权模式)
sh
docker run -d -name centos7 --privileged=true centos:7 /usr/sbin/init
如何备份数据卷
docker 没有提供特有的备份功能,需要用户用容器挂载卷,然后用 tar 自行备份。不推荐在容器外备份,因为权限可能会异常,对权限敏感的应用就无法正常运行。
sh
## 备份
tar cvpzf /backup/backup.tar.gz /data
## 恢复
tar xvpzf /backup/backup.tar.gz -C /