准备工作
windows Mac:直接去下载可视化工具 https://www.docker.com/products/docker-desktop
centos7 yum install docker-io -y
腾讯云 https://cloud.tencent.com/document/product/1207/45596
使用docker下载nginx镜像
docker pull nginx
如果网速慢的话 注意更换 docker源
依次执行以下命令
echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
systemctl daemon-reload
service docker restart
启动nginx
docker run --name nginx -p 80:80 -d nginx
这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令:
docker exec -it nginx bash
nginx.conf配置文件在 /etc/nginx/ 下面,但是你使用 vim nginx.conf
或者 vi nginx.conf
会发现vi或者vim命令没有用,解决办法:apt-get update
完成之后 apt-get install vim
此时你就可以自己定制nginx.con文件了,改好配置文件之后重启容器,步骤,先把容器停了
docker stop nginx
然后重启 docker start nginx
这样不是很方便,还有第二种方式,挂载配置文件,就是把装有docker宿主机上面的nginx.conf配置文件映射到启动的nginx容器里面,这需要你首先准备好nginx.con配置文件,如果你应经准备好了,下一步是启动nginx
docker run --name nginx -p 80:80 -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx -v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx
解释下上面的命令:
--rm
容器终止运行后,自动删除容器文件
--name
给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器
-p
映射端口,将docker宿主机的80端口和容器的80端口进行绑定
-v
挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面第三个-v 表示的和第一个-v意思一样的。
-d
表示启动的是哪个镜像
我个人更喜欢第二种映射的方式,麻烦的是需要自己准备好nginx.conf 和default.conf文件,我是直接从容器里面复制的,然后根据自己的需要改的
前端该如何用docker做什么
通常前端 npm run build
之后生成dist文件 会把文件上传通过ftp或者后台人员上传到服务器 但如果服务器支持docker部署的话 就能非常方便的部署应用了
dockFile 是类似shell脚本的 docker构建文件
# 设置基础镜像
FROM nginx
# 定义作者
MAINTAINER lanbo
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
RUN echo 'echo init ok!!'
nginx.conf 如果根据实际情况配置
打包镜像
当前目录下运行:docker build -t nginx-test .
后面的 . 不能省
运行容器
docker run --name nginx-docker -p 80:80 -d nginx-test
浏览器输入localhost就可以访问了前端页面了
以上操作是服务器完成 或者本地制作好的镜像上传到服务器启动也行
当然更高级是使用 jekins 集成自动获取代码 自动打包 自动上传
参考 jekins部署docker