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

时间:2022-05-29 13:08:00

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 创建Linux容器:

docker run -d -it --name myCentos 镜像ID /bin/bash
  • -d 后台运行
  • –name 容器名

2.2 将JDK复制到myCentos容器中

docker cp jdk-10.0.1_linux-x64_bin.tar.gz myCentos:/usr/local

2.3 进入容器

docker exec -it myCentos /bin/bash

2.4 解压JDK

tar -zxvf jdk-10.0.1_linux-x64_bin.tar.gz

2.5 配置环境变量

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.5.1 刷新环境变量

source /etc/profile

2.5.2 设置开机自动执行source

vi ~/.bashrc

在第一行添加 source /etc/profile

2.5.3 重启容器

docker stop myCentos
docker start myCentos

2.6 将容器提交到镜像里

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 然后再推送即可