目录
1、Dockerfile
1.1什么是Dockerfile
1.2常用命令
1.3使用脚本创建镜像
2、Docker私有仓库
2.1私有仓库介绍:
2.2私有仓库搭建与配置
2.3上传镜像到私有仓库:
1、Dockerfile
1.1什么是Dockerfile
Dockerfile是由一些列命令和参数构成的脚本,这些命令应用于基础镜像并且最终创建一个新的镜像。
- Dockerfile是用于定义Docker镜像构建过程的文本文件,它包含了一系列的指令和配置,用于指导Docker引擎在基础镜像上构建出一个新的镜像。
- 通过编写Dockerfile,可以实现自动化、可重复的构建过程,提高容器镜像的可靠性和可维护性。
- Dockerfile的编写规范和最佳实践可以帮助优化镜像构建过程,减小镜像大小,提高构建速度
对于开发人员:可以为开发团队提供一个完全一致的开发环境;
对于测试人员:可抑直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了;
对于运维人员:在部署时,可以实现应用的无缝移植
1.2常用命令
命令 | 作用 |
---|---|
FROM image_name:tag | 定义了使用哪个基础镜像启动构建流程 |
MAINTAINER user_name | 声明镜像的创建者 |
ENV key value | 设置环境变量 (可以写多条) |
RUN command | 是Dockerfifile的核心部分(可以写多条) |
ADD source_dir/fifile dest_dir/fifile | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/fifile dest_dir/fifile | 和ADD相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
1.3使用脚本创建镜像
创建一个目录(存放tar包,dockerfile位置):
mkdir -p /usr/local/dockerjdk8
这里下载了jdk的tar包并且将tar包移动到dockerjdk8目录下面
编辑Dockerfile文件:
vim Dockerfile
编辑内容:
FROM centos:7 MAINTAINER xxx WORKDIR /usr RUN mkdir /usr/local/java ADD jdk-8u60-linux-x64.tar.gz /usr/local/java ENV JAVA_HOME /usr/local/java/jdk1.8.0_60 ENV PATH $JAVA_HOME/bin:$PATH
解压tar包:
docker build -t='jdk1.8' .
2、Docker私有仓库
2.1私有仓库介绍:
- Docker私有仓库是用于存储和管理自定义的容器镜像的中心化平台,可以在内部网络中构建、存储和共享镜像。
- 搭建Docker私有仓库可以提供更快的镜像下载速度、更好的安全性和更好的团队协作体验。
- Docker私有仓库的管理包括权限控制、备份与恢复、高可用与负载均衡等方面,可以根据实际需求进行配置和优化。
2.2私有仓库搭建与配置
拉取私有仓库镜像:
docker pull registry
Using default tag: latest
latest: Pulling from library/registry
79e9f2f55bf5: Pull complete
0d96da54f60b: Pull complete
5b27040df4a2: Pull complete
e2ead8259a04: Pull complete
3790aef225b9: Pull complete
Digest: sha256:169211e20e2f2d5d115674681eb79d21a217b296b43374b8e39f97fcf866b375
Status: Downloaded newer image for registry:latest
docker.io/library/registry:latest
启动私有仓库容器:
docker run -di --name=registry -p 5000:5000 registry
541b70741fa03693e6d3acdc7da977a2b123fdc66f6123aeb1fd37f24b130c7a
打开浏览器输入地址http://192.168.159.161:5000/v2/_catalog进行访问:
这里的显示表示私有仓库搭建成功,但是内容还是空的需要增加内容:
修该daemon.json
{
"registry-mirrors": ["https://registry.dockercn.com","https://mj9kvemk.mirror.aliyuncs.com"],
"insecure-registries":["192.168.159.161:5000"]
}
重启docker:
systemctl restart docker
将registry容器启动:
docker start registr
2.3上传镜像到私有仓库:
打标签:
docker tag jdk1.8 192.168.159.161:5000/jdk1.8
查看:
将该镜像上传到私有仓库:
push 192.168.159.161:5000/jdk1.8
浏览器查看(这里上传成功了):