使用Dockerfile制作镜像
通过 Dockerfile 可以实现自己开发一个镜像。
Dockerfile 其实就是一个文本文件,由一系列命令和参数构成,Docker 可以读取 Dockerfile 文件并根据 Dockerfile 文件的描述来构建镜像。
常用命令
命令 | 作用 |
---|---|
FROM image_name:tag | 定义了使用哪个基础镜像启动构建流程 |
MAINTAINER user_name | 声明镜像的创建者 |
ENV key value | 设置环境变量 (可以写多条) |
RUN command | 是 Dockerfile 的核心部分(可以写多条) |
ADD source_dir/file dest_dir/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file dest_dir/file | 和 ADD 相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
使用脚本创建镜像
测试:使用脚本来创建 jdk1.8 镜像
1、创建目录
1 | mkdir –p /usr/local/dockerjdk8 |
2、下载 Linux 版本的 jdk1.8(jdk-8u291-linux-x64.tar),并上传到服务器(虚拟机)中的/usr/local/dockerjdk8 目录
下载地址:jdk1.8 下载
3、在/usr/local/dockerjdk8
目录下面创建文件 Dockerfile vi Dockerfile
1 | vi Dockerfile |
编辑内容:
1 | #依赖镜像名称和ID |
4、执行命令构建镜像(注意后边的空格和点,不要省略)
指令最后一个 .
是上下文路径。上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。(因此不要在构建镜像的时候上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢)
docker build -t=’镜像名’ .
1 | docker build -t='jdk1.8' . |
本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ShiGuang
评论