了解 Dockerfile 和搭建 Docker 私有仓库:让容器化部署变得更简单

目录

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

浏览器查看(这里上传成功了):

猜你喜欢

转载自blog.csdn.net/qq_68163788/article/details/131335344