将介绍Docker核心概念,是什么、能干什么、Docker整体架构,和传统虚拟机的区别。什么是容器虚拟化技术,深刻理解镜像、容器、仓库的各种概念和操作。通过该课程,能够熟练掌握Dockerfile的编写和构建并使用Dockerfile来制作复杂镜像,能够使用容器卷完成容器间数据共享和持久化工作。能够在Docker容器下进行日常软件的安装开发和工程部署,最终可以通过docker和阿里云平台完成工作的协同和发布。
1、FROM
基础镜像,当前新镜像是基于哪个镜像的
2、MAINTAINER
镜像维护者的姓名和邮箱地址
3、RUN
容器构建时需要运行的命令
4、EXPOSE
当前容器对外暴露出的端口
5、WORKDIR
指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
6、ENV
用来在构建镜像过程中设置环境变量,这个环境变量可以在后续的任何RUN指令中使用,这就如同在命令前面指定了环境变量前缀一样;也可以在其它指令中直接使用这些环境变量,比如:WORKDIR $MY_PATH
7、ADD
将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
8、COPY
类似ADD,拷贝文件和目录到镜像中。
将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置
9、VOLUME
容器数据卷,用于数据保存和持久化工作
10、CMD
指定一个容器启动时要运行的命令
Dockerfile 中可以有多个 CMD 指令,但只有最后一个生效,CMD 会被 docker run 之后的参数替换
CMD指令的格式和RUN相似,也是两种格式:
shell格式:CMD<命令>
exec格式:CMD ["可执行文件","参数1","参数2"...]
参数列表格式:CMD ["参数1","参数2"...] 在指定了ENTRYPOINT指令后,用CMD指定具体的参
11、ENTRYPOINT
指定一个容器启动时要运行的命令
ENTRYPOINT 的目的和 CMD 一样,都是在指定容器启动程序及参数
12、ONBUILD
当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发