首页>运维>Docker> 文章正文

本地使用docker打包部署镜像的方法

来源: Docker 2021-05-11 05:23 阅读: 8
第一次在本地使用docker打包、部署镜像 首先说下我的笔记本系统是MACOS10.15.4 我安装的docker版本是v19.03.5

第一次在本地使用docker打包、部署镜像

首先说下我的笔记本系统是MACOS10.15.4


我安装的docker版本是v19.03.5

一、项目结构如下:

这是一个react项目,打包后的静态资源路径是dist目录。


二、重点看Dockerfile文件和docker/nginx.conf文件

1.Dockerfile是一个用来构建镜像的文本文件,详细介绍可以参考链接:DockerDockerfile

我的Dockerfile内容如下:

FROMnginx

WORKDIR/usr/src/app/

COPY./docker/nginx.conf/etc/nginx/conf.d/default.conf

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

EXPOSE80

CMD["nginx","-g","daemonoff;"]

Dockerfile中的大写单词是命令,各个命令的含义解释:

FROM:定制的镜像都是基于FROM的镜像,这里的nginx就是定制需要的基础镜像。后续的操作都是基于nginx。

RUN:用于执行后面跟着的命令行命令。有以下俩种格式:

WORKDIR:指定工作目录。用WORKDIR指定的工作目录,会在构建镜像的每一层中都存在。WORKDIR指定的工作目录,必须是提前创建好的。dockerbuild构建镜像过程中的,每一个RUN命令都是新建的一层。只有通过WORKDIR创建的目录才会一直存在。

COPY:复制指令,从上下文目录中复制文件或者目录到容器里指定路径。

EXPOSE:仅仅只是声明端口。作用:帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射。在运行时使用随机端口映射时,也就是dockerrun-P时,会自动随机映射EXPOSE的端口。

CMD:类似于RUN指令,用于运行程序,但二者运行的时间点不同:CMD在dockerrun时运行。RUN是在dockerbuild。作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD指令指定的程序可被dockerrun命令行参数中指定要运行的程序所覆盖。注意:如果Dockerfile中如果存在多个CMD指令,仅最后一个生效。

2.docker/nginx.conf

server{

listen80;

#gzipconfig

gzipon;

gzip_min_length1k;

gzip_comp_level9;

gzip_typestext/plaintext/csstext/javascriptapplication/jsonapplication/javascriptapplication/x-javascriptapplication/xml;

gzip_varyon;

gzip_disable"MSIE[1-6].";

client_max_body_size100m;

root/usr/share/nginx/html;

location/{

try_files$uri$uri//index.html;

}

location/api/{

#此处为后端地址

proxy_passhttp://www.XXX.com/;

}

}

三、执行dockerbuild命令制作镜像

我执行的命令是:dockerbuild-tmydocker.


-t:为镜像打一个tag,tag名称为mydocker


不要忘了后面有个点,表示在当前路径下制作镜像

四、执行dockerrun部署镜像

我执行的命令是:dockerrun-p80:80mydocker


-p是指定映射到本机的端口


dockerrun-p本机端口:镜像端口镜像名

五、打开localhost:80就可以看到项目啦

初次体验docker本地部署,很多原理和docker命令还不太清楚,以后还会进一步学习~

补充一个小问题,我今天突然无法将镜像推到公司的私有云了,是网络环境有问题,就让同事帮忙推一下。


我先将打包好的镜像保存到本地:

dockersave10.10.10.52:5000/zhanwu-study/prod:4.1.2>study.tar

然后将生成到当前目录下的study.tar通过钉钉发给同事,他下来study.tar到本地,然后执行:

dockerload<study.tar

更新一下版本(没有生成新的镜像,两个版本是同一个镜像):

dockertag10.10.10.52:5000/zhanwu-study/prod:4.1.210.10.10.52:5000/zhanwu-study/prod:4.1.3

然后推到私有云:

dockerpush10.10.10.52:5000/zhanwu-study/prod:4.1.3

到此这篇关于本地使用docker打包部署镜像的方法的文章就介绍到这了,更多相关本地docker打包部署镜像内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

您可能感兴趣的文章:详解如何使用Docker部署一个web项目并打包成镜像文件