1 安装好docker环境     docker -v   查看是否成功

2编写Dockerfile文件.下面这个dokcerfile的RUN指令不好.[当有多个命令需要执行的时候,可以用换行符和连接符隔开,而不是写多个RUN指令,因为那样会增加镜像的构建时间,产生很多无用的中间层镜像(镜像分层原理,每一条指令都会构建一层镜像)]

RUN command1 \
    && command2 \
    && command3

From nginx:1.18.0

Run mkdir /usr/share/nginx/dis    这个路径在我这是错的,会报错.报错后直接run,启动容器后##去容器内容查看具体路径就好

Run rm -fr /etc/nginx/nginx.conf

COPY ./dist  /usr/share/nginx/dist

COPY  ./nginx.conf  /et/nginx/conf/nginx.conf

EXPOSE 80

3从外网下载一个nginx镜像包或者docker pull一个,上传前端升级包dist文件,准备好nginx.conf文件

4

docker load < nginx.tar      docker build -t name:tag .    //只写docker build  . 的话,docker load < nginx.tar打入的镜像没有name和tag,只有id

准备工作做好了.现在有docker环境和一个nginx镜像.

docker run --name myNginx2 -p 8080:80 -d 镜像ID   // 容器启动后就可以进入查看了,下面那个进入,-d: 启动容器后不进入容器

挂载目录方式:  

docker run --name myNginx2 -p 8080:80 -v /data/myNginx/nginx.conf:/etc/nginx/nginx.conf -v /data/myNginx/www/:/usr/share/nginx/ -v /data/myNginx/logs/:/var/log/nginx/ -v /data/myNginx/conf/conf.d:/etc/nginx/conf.d --privileged=true -d nginx


 

docker exec -it  容器ID /bin/bash      到容器内去看nginx的路径,不是所有默认路径都是/usr/share/nginx

docker cp dist myNginx2:/data/nginx/          拷贝整个dist文件夹及子文件夹到docker的路径内

执行完build后,执行

 docker save 镜像名:tag > 新名字.tar    //就可以导出镜像为压缩包了,这种导出,在执行load时,也会有name和tag.而 docker save 镜像id > XXX.tar在load时,只有镜像id

Logo

前往低代码交流专区

更多推荐