docker搭建本地仓库并制作自己的镜像

时间:2021-06-14 21:40:28

原文地址https://blog.csdn.net/junmoxi/article/details/80004796

1. 搭建本地仓库
1.1 下载仓库镜像
1.2 启动仓库容器
2. 在CentOS容器中安装JDK
2.1 下载CentOS容器
2.2 运行Linux容器:
2.3 将JDK复制到myCentos容器中
2.4 进入容器
2.5 解压JDK
2.6 配置环境变量
2.6.1 刷新环境变量
2.6.2 设置开机自动执行source
2.6.3 重启容器
2.7 将容器提交到镜像里
3. 将新制作的镜像推送到仓库中
3.1 修改tag
3.2 将镜像推送到仓库中

1. 搭建本地仓库

1.1 下载仓库镜像
docker pull registry

1.2 启动仓库容器
docker run -d -p 5000:5000 -v /home/registry/:/tmp/registry registry

第一个5000是本地的端口,第二个5000是docker里面的端口,将本地5000的端口映射到
docker里面的5000端口

2. 在CentOS容器中安装JDK
2.1 下载CentOS容器
镜像仓库地址:https://dashboard.daocloud.io/packages/explore

docker搭建本地仓库并制作自己的镜像

docker pull daocloud.io/library/centos:latest

2.2 解压镜像 运行Linux容器:
docker run -d -it --name myCentos 镜像ID /bin/bash

-d 后台运行
–name 容器名

2.3 将JDK复制到myCentos容器中
docker cp jdk-10.0.1_linux-x64_bin.tar.gz myCentos:/usr/local

2.4 进入容器
docker exec -it myCentos /bin/bash

2.5 解压JDK
tar -zxvf jdk-10.0.1_linux-x64_bin.tar.gz

2.6 配置环境变量
vi /etc/profile

在文件末尾添加:

export JAVA_HOME=/usr/local/jdk1.8.0_152
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2.6.1 刷新环境变量
source /etc/profile

2.6.2 设置开机自动执行source
vi ~/.bashrc

在第一行添加 source /etc/profile

2.6.3 重启容器
docker stop myCentos
docker start myCentos

2.7 将容器提交到镜像里
docker commit <CONTAINERID> <IMAGE>

docker搭建本地仓库并制作自己的镜像

3. 将新制作的镜像推送到仓库中
3.1 修改tag
docker tag <REPOSITORY> 仓库IP地址:端口/镜像名

tag名应该为 ip:端口/镜像名 的形式,它会将此镜像推送到此IP地址下的仓库,并且定义此镜像名

docker搭建本地仓库并制作自己的镜像

3.2 将镜像推送到仓库中
docker push tag名

可通过http://139.199.64.253:5000/v2/_catalog地址访问你上传的结果

注意:如果push报错:The push refers to a repository [139.199.64.253:5000/java]
Get https://139.199.64.253:5000/v1/_ping: http: server gave HTTP response to HTTPS client
则修改 /etc/docker 路径下的 daemon.json 文件,如果没有则手动创建,在文件中写入:
{ “insecure-registries”:[“139.199.64.253:5000”] }
然后重启docker: service docker restart
重新启动仓库:docker run -d -p 5000:5000 -v /home/registry/:/tmp/registry registry

docker搭建本地仓库并制作自己的镜像

如果想推送到docker的*仓库则 tag名改为 : docker.io/java 然后再推送即可