十 SpringCloud - Docker( 三 )

4.1.2 打包成新镜像docker commit -m="第一次打包镜像 , tomcat首次访问404" -a="KH96" tomcat01 tomcat:8.5.78-kh9x语法: docker commit -m="提交信息" -a="作者信息" 容器名/容器ID 提交后的镜像名:Tag4.1.3 用新的镜像创建新的容器docker stop tomcat01 # 停止tomcat01容器docker rm -f tomcat01 # 删除tomcat01容器docker images -a # 查看我们新打包的镜像# 重新创建并运行新的容器 tomcat02docker run -itd -p 8080:8080 --name tomcat02 tomcat:8.5.78-kh9x# 再次测试访问可以看到tomcat服务的首页;

十 SpringCloud - Docker

文章插图
4.2 DockerfileDockerfile是一个包含用于组合映像的命令的文本文档 。可以使用在命令行中调用任何命令 。Docker通过读取Dockerfile中的指令自动生成映像 。
4.2.1 常用命令4.2.1.1FROM (from)语法: FROM <image> 或者 FROM <image>:<tag>含义: 基础image , 必须写在第一行 , 指定在哪个基础镜像上创建镜像 , 可以是官方远程仓库中的 , 也可以本地仓库 。4.2.1.2 MAINTAINER (maintainer)语法: MAINTAINER <name>含义: 申明作者 , 用于将image的作者相关的信息写入到image中 , 辅助使用 , 一般放FROM命令后面4.2.1.3 WORKDIR (workdir)语法: WORKDIR <path>含义: 设置容器的工作目录 , 之后的命令RUN 、CMD 、ENTRYPOINT命令都是基于此工作目录,如果不存在则会创建目录 , 也可以在 docker run命令中用 -w参数覆盖掉WORKDIR指令的设置注意:为了避免出错 , 推荐WORKDIR指令中只使用绝对路径 , 进入容器后默认也是此目录4.2.1.4 ADD(add)语法: ADD <src> <dest><src>相对被构建的源目录的相对路径 , 也可以是一个远程的文件url;<dest> 是container中的绝对路径含义:它的基本作用是从宿主机系统的文件系统上复制文件到目标容器的文件系统 。1)如果源是一个URL , 那该URL的内容将被下载并复制到容器中 。2)如果如果文件是可识别的压缩格式 , 则docker会帮忙解压缩 。3)如果要ADD本地文件 , 则本地文件必须在 docker build <PATH> , 指定的path目录下 , 默认当前目录 。4)ADD只有在build镜像的时候运行一次 , 后面运行container的时候不会再重新加载了 。4.2.1.5 ENV (env)语法: ENV <key> <value>含义: 用于设置环境变量 , 在image中设置一个环境变量 。注意: 设置了后 , 后续的RUN命令都可以使用 , container启动后 , 可以通过docker inspect查看这个环境变量 , 也可以通过在docker run --env key=value时设置或修改环境变量 。4.2.1.6 RUN (run)语法: RUN <command>含义: 它接受命令作为参数并用于创建镜像 , 并在镜像构建的过程中执行 。注意: RUN可以运行任何被基础image支持的命令 , RUN指令创建的中间镜像会被缓存 , 并会在下次构建中使用 。如果不想使用这些缓存镜像 , 可以在构建时指定--no-cache参数 , 如:docker build --no-cache4.2.1.7 CMD (cmd)语法: CMD ["executable","param1","param2"]CMD command param1 param2含义:用于container启动时指定的操作 。该操作可以是执行自定义脚本 , 也可以是执行系统命令 。该指令只能在文件中存在一次 , 如果有多个 , 则只执行最后一条 。区别:CMD用于指定在容器启动时所要执行的命令 , 而RUN用于指定镜像构建时所要执行的命令 。

经验总结扩展阅读