docker上传保存本地镜像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker上传保存本地镜像相关的知识,希望对你有一定的参考价值。

参考技术A

导入本地镜像 oracle-jdk8-zh.tar.gz

docker tag 用于给镜像打标签,语法如下:
docker tag "原镜像ID" "标记" (java 是REPOSITORY的名字 oracleJdk8Zh 是标记的名字)

导出镜像到本地
docker save -o 参数1(导出到具体位置 )参数2(需要导出的镜像名称,nginx:latest是源镜像名name:tag)

其中-o和>表示输出到文件,nginx.tar为目标文件,保存的路径/nginx:latest是源镜像名

容器导出再导入之后,得到的是镜像,然后使用命令 docker run 即可运行实例
导出容器
其中-o表示输出到文件,mall-service.tar为目标文件,mall-service 是源容器名(name)

**导入容器
mall-service.tar 为导出的文件,maill-service:v2为REPOSITORY:tag **

docker学习-构建本地Registry

保存和分发镜像的最直接的方法就是使用Docker H u b,它是Docker公司维护的公共Regsitry,用户可以将自己的镜像保存到Docker H u b 免费的repository中。如果不希望别人访问自己的镜像,也可以购买私有repository.
一般我们可以使用Docker H u b上传和下载镜像,虽然十分方便,但是还是有些限制,比如:
1、需要外网连接,而且上传和下载速度慢
2、上传到Docker H u b 的镜像任何人都能够访问,虽然可以用私人repositroy,但不是免费的
3、因为安全原因很多组织不允许将镜像放到外网

解决方法是单间本地的Registry。
Docker已经将Registry开源了,同时在Docker H u b上也有官方的镜像Registry。
我们可以在Docker中运行自己的Registry

使用dockerfile构建httpd

在使用仓库之前,首先我们构建一个httpd镜像,保存到本地中
首先创建dockerfile目录和创建dokcerfile文件

cd ~
mkdir dokcerfile 
cd dockerfile
touch dockerfie

按照如下编辑dockerfile
技术图片
然后构建http镜像

docker build -t httpd:v11 -f dockerfile /root/dockerfile

如下所示,构建成功
技术图片
检查镜像

docker images

技术图片

启动registry容器

首先在根目录下创建/myregistry目录用于存放镜像数据
本次使用镜像是registry:2

cd /
mkdir /myregistry 

使用如下命令创建registry容器

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2

技术图片
说明:
1、-d 后台启动容器
2、-p 将容器的5000端口映射到Host的5000端口。5000是registry服务端口
3、-v 将容器的/var/lib/regsitry目录映射给Host的/myregistry,用于存放镜像数据

通过docker tag重命名镜像,使之与registry匹配,如下所示:

docker tag yangchao/httpd:v1 127.0.0.1:5000/yangchao/httpd:v1

将httpd:v11更改为Registry要求的格式,格式如下:

只有Docker Hub上的镜像可以省略registry-host:[port]
按照如下方式,通过docker tag重命名镜像,使之与registry匹配

docker tag httpd:v11 127.0.0.1:5000/yangchao/httpd:v11

使用dokcer image命令检查镜像
技术图片

然后将yangchao/httpd:v11上传到Registry

docker push 127.0.0.1:5000/yangchao/httpd:v11

技术图片
然后查看Registry中的镜像

curl 127.0.0.1:5000/v2/_catalog

技术图片
可以在/myregistry目录中查看相应的镜像
技术图片
至此本地registry就创建完毕

以上是关于docker上传保存本地镜像的主要内容,如果未能解决你的问题,请参考以下文章

Docker镜像保存为文件及从本地文件导入镜像的方法

Docker------Docker基本管理

Docker------Docker基本管理(镜像,容器,网络,资源控制)

docker 如何保存镜像到本地 docker如何读取本地保存的镜像

如何将本地docker 镜像上传到我的私有仓库

docker保存镜像到本地,并加载本地镜像文件