docker部署前端项目

1.Dockerfile配置文件保留字
FROM:指定基础镜像
MAINTAINER:镜像维护者的姓名和邮箱
RUN:容器构建时需要运行的命令(命令行命令和exec命令)
EXPOSE:当前容器对外暴露的端口号
WORKDIR:指定在创建容器后,终端默认登录进来的工作目录
USER:指定该镜像以什么样的用户去执行,默认root
ENV:构建过程中设置环境变量(设置:ENV HOME_PATh /user/home,使用:$HOME_PATH)
ADD:将宿主机目录下的文件拷贝进镜像,ADD命令会自动处理URL和解压tar压缩包(COPY+解压)
COPY:将宿主机目录下的文件拷贝进镜像
VOLUME:容器数据卷
// CMD是在docker run时运行(会被run后面的参数替换掉),RUN是在docker build时运行
CMD:指定一个容器启动时要运行的命令,参数为数组格式 CMD ["可执行文件", "参数1", "参数2" ...]
// 当指定了ENTRYPOINT后,CMD的含义就发生了变化,不再是直接运行其命令而是将CMD的内容作为参数传递给ENTRYPOINT指令,他两个组合会变成<ENTRYPOINT><CMD>
ENTRYPOINT:也是指定一个容器启动时要运行的命令
2.在服务器里面准备一个文件目录,目录里面的文件如下
image.png
dist:打包构建好的前端项目
Dockerfile:docker构建镜像的配置文件
default.conf:nginx配置文件
3.拉取nginx镜像
docker pull nginx
4.编辑default.conf配置文件
server {
    listen       80;
    server_name  localhost; # 修改为docker服务宿主机的ip
 
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
 
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

该配置文件定义了首页的指向为 /usr/share/nginx/html/index.html, 所以我们可以一会把构建出来的index.html文件和相关的静态资源放到/usr/share/nginx/html目录下

5.编辑Dockerfile配置文件(参考第一点的保留字)
FROM nginx
 
MAINTAINER liang
 
RUN rm /etc/nginx/conf.d/default.conf
 
ADD default.conf /etc/nginx/conf.d/
 
COPY dist/ /usr/share/nginx/html/

Dockerfile内容解释

FROM nginx:该镜像是基于nginx:latest镜像构建的
 
MAINTAINER liang:作者
 
RUN rm /etc/nginx/conf.d/default.conf:删除目录下的default.conf文件
 
ADD default.conf /etc/nginx/conf.d/:将default.conf复制到/etc/nginx/conf.d/下,用本地的default.conf配置来替换nginx镜像里的默认配置
 
COPY dist/ /usr/share/nginx/html/:将项目根目录下dist文件夹(构建之后才会生成)下的所有文件复制到镜像/usr/share/nginx/html/目录下
6.构建docker镜像
docker build -t xxxx .

注意不要少了最后的“.”(点) -t是给镜像命名,.(点)是基于当前目录的Dockerfile来构建镜像

7.构建过程和查看镜像
image.png
8.启动docker容器
docker run -d -p 9090:80 --name test webtest
docker run:基于镜像启动一个容器
 
-d:后台方式启动
 
-p 9090:80: 端口映射,将宿主机的9090端口映射到容器的80端口
 
--name:容器名,我起的叫test
 
webtest:要启动的镜像名称
9.访问

启动成功后,访问宿主机的地址:9090就可以看到我们部署的网站了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容