一.说明
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 | 设置工作目录 |
三.使用脚本创建镜像
3-1.构建jdk镜像
1.步骤
1.创建文件夹用于存储镜像相关的资源。【请看导入jdk指令和创建文件夹】
2.存储jdk的压缩包。【请看导入jdk指令和创建文件夹】
3.编译Dockerfile文件并保存。【请看Dockerfile文件编写】
4.构建镜像。【请看docker构建镜像】
2.导入jdk指令和创建文件夹
#创建文件夹
mkdir -p /usr/local/dockerjdk8
#将上传的jdk8移动到/usr/local/dockerjdk8
mv jdk-8u271-linux-x64.tar.gz /usr/local/dockerjdk8
#移动到/usr/local/dockerjdk8文件夹
cd /usr/local/dockerjdk8
#创建一个Dockerfile文件并编译
vi Dockerfile
3.Dockerfile文件编写内容
FROM centos:7
MAINTAINER xiaodenglong
workdir /usr
RUN mkdir /usr/local/java
ADD jdk-8u271-linux-x64.tar.gz /usr/local/java
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLAsspATH $JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLAsspATH
ENV PATH $JAVA_HOME/bin:$PATH
4.docker构建镜像的指令
#build是构建,-t设置镜像名称,./指的是Dockerfile的所在目录
docker build -t='jdk1.8' ./
5.范例
(1)创建文件夹和创建Dockerfile
(2)编译Dockerfile
(3)构建镜像
3-2.docker私有仓库
1.拉取私有仓库镜像
docker pull registry
2.启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
3.验证私有仓库搭建是否成功
打开浏览器输入地址http://192.168.8.154:5000/v2/_catalog看到{"repositories":[]}表示私有仓库搭建成功并且内容为空
4.修改daemon.json
vi /etc/docker/daemon.json
5.添加以下内容,保存退出。【设置docker信任私有仓库】
{"insecure-registries":["192.168.8.154:5000"]}
此步用于让docker信任私有仓库地址。
6.重启docker服务
systemctl restart docker
7.范例
(1)安装私有仓库的镜像
(2)验证私有仓库的安装
(3)使docker信任私有仓库
3-3.私有仓库上传镜像
1.设置指定地址为jdk镜像的访问地址
docker tag jdk1.8 192.168.8.154:5000/jdk1.8
2.上传jdk1.8到私有仓库
docker push 192.168.8.154:5000/jdk1.8
3.范例
4.细节
四.相关资源
链接:https://pan.baidu.com/s/14tliJjrcb7VwsQXicuXzKw
提取码:1sup
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。