方式一:命令行启动(需cd到对应目录下)
1.编写命令行
1 2 3 4 5 6 7 8
| docker container run \ -d \ -p 4000:80 \ --rm \ --name payrollCache \ --volume "$PWD/dist":/usr/share/nginx/html \ --volume "$PWD/nginx":/etc/nginx \ nginx
|
2.修改nginx配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # location ~ /api/ { proxy_pass http://172.17.0.1:8097;// docker0接口ip } ... }
|
方式二:简单的Dockerfile
1.编写Dockerfile文件
1 2 3 4 5 6 7 8 9 10 11
| FROM nginx:1.17.6 LABEL maintainer="robin.wang" date="2019-12-25" LABEL description="payrollCache UI with nginx" COPY ./dist/ /usr/share/nginx/html/ COPY ./nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf EXPOSE 80
|
2.生成image
1
| docker image build -t payroll_test:1.0.0 .
|
3.启动容器
1
| docker container run -d -p 4000:80 --rm --name payrollCache payroll_test:1.0.0
|
方式三:使用多步骤构建
1.编写Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| FROM node:11.14.0 AS builder COPY package.json package-lock.json /app/ WORKDIR /app RUN npm install --registry=https://registry.npm.taobao.org COPY . . RUN npm run build:prod FROM nginx:1.17.6 LABEL maintainer="robin.wang" date="2019-12-25" LABEL description="payrollCache UI with nginx" COPY --from=builder /app/dist/ /usr/share/nginx/html/ COPY --from=builder /app/nginx/default.conf /etc/nginx/conf.d/default.conf EXPOSE 80
|
2.编写.dockerignore文件
1 2 3 4 5 6 7 8 9 10 11
| .git node_modules npm-debug.log dist mock tests .eslintignore .eslintrc.js .gitignore .travis.yml jest.config.js
|
3.生成image
1
| docker image build -t payroll_test:1.0.0 .
|
4.导出image
1
| docker save -o payroll.tar payroll:1.0.0
|
5.导入image
1
| docker load -i payroll.tar
|
6.启动容器
1
| docker container run -d -p 4000:80 --rm --name payrollCache payroll:1.0.0
|
参考文章:
官方安装文档
Docker入门教程
Nginx容器教程
Docker容器访问宿主机网络
缓存与指令