手把手教你如何使用Docker( 三 )


常用命令 关键字作用备注
FROM
指定父镜像
指定基于那个image构建
作者信息
用来标明这个谁写的
LABEL
标签
用来标明的标签 可以使用Label代替 最终都是在 image基本信息中可以查看
RUN
执行命令
执行一段命令 默认是/bin/sh 格式: RUN或者 RUN [“” , “”,“”]
CMD
容器启动命令
提供启动容器时候的默认命令 和配合使用.格式 CMD或者 CMD [“” , “”,“”]
入口
一般在制作一些执行就关闭的容器中会使用
COPY
复制文件
build的时候复制文件到image中
ADD
添加文件
build的时候添加文件到image中 不仅仅局限于当前build上下文 可以来源于远程服务
ENV
环境变量
指定build时候的环境变量 可以在启动的容器的时候 通过-e覆盖 格式ENV name=value
ARG
构建参数
构建参数 只在构建的时候使用的参数 如果有ENV 那么ENV的相同名字的值始终覆盖arg的参数
定义外部可以挂载的数据卷
指定build的image那些目录可以启动的时候挂载到文件系统中 启动容器的时候使用 -v 绑定 格式[“目录”]
暴露端口
定义容器运行的时候监听的端口 启动容器的使用-p来绑定暴露端口 格式:8080 或者8080/udp
工作目录
指定容器内部的工作目录 如果没有创建则自动创建 如果指定/ 使用的是绝对地址 如果不是/开头那么是在上一条的路径的相对路径
USER
指定执行用户
指定build或者启动的时候 用户 在RUN CMD 执行的时候的用户
健康检查
指定监测当前容器的健康监测的命令 基本上没用 因为很多时候 应用本身有健康监测机制
触发器

手把手教你如何使用Docker

文章插图
当存在关键字的镜像作为基础镜像的时候 当执行FROM完成之后 会执行 的命令 但是不影响当前镜像 用处也不怎么大
发送信号量到宿主机
该指令设置将发送到容器的系统调用信号以退出 。
SHELL
指定执行脚本的shell
指定RUN CMD执行命令的时候 使用的shell
实际应用—项目打包
1. 先将springboot打包2. 再将打好的jar包上传到centos【或其它系统】3. 编写dockerfile文件【不需要后缀名】示例:vim springboot_dockerfile内容:FROM java:8MAINTAINER Tommy ADD docker_file_test-0.0.1-SNAPSHOT.jar app.jarCMD java -jar app.jar4. 运行dockerfile文件docker build -f ./springboot_dockerfile -t app:1.0 .5. docker images查看镜像有没有app:1.06. 运行镜像docker run -id -p 9000:8080 app:1.0
对上面的运行命令构建镜像的命令不知道啥意思的同学 , 可看一下的解析
我们发现镜像中多了app:1.0镜像
实际应用—项目打包
普通的镜像 , 进去后工作目录是/ , 且没有vim , 
所以我们决定自己配置一下
# dockerfilevim centos_dockerfileFROM centos:7MAINTAINER Tommy RUN yum install -y vimWORKDIR /usrCMD /bin/bash# 使用dockerfile生成镜像docker build -f ./centos_dockerfile -t dockerfile_centos:1.0 .# 运行生成的镜像docker run -it --name=c_centos1 dockerfile_centos:1.0
这时候再进去 , 就有vim了 , 且工作目录是/usr
十、
服务编排工具
我们上面的维护工作量是非常巨大的 , 比如我们要创建多个容器并管理多个容器
解决:
? 利用服务编排【】来使用yml配置文件批量管理容器
dockerfile定义运行环境镜像使用docker-compose.yml定义组成应用的各服务运行docker-compose up启动应用