手动下载镜像
1、首先pull镜像到本地
docker pull <镜像名称>:<标签>
2、转储镜像
docker save -o /path/to/save/image.tar <镜像地址>
如:
docker save -o ./tomcat.tar localhost:5000/tomcat:9.0.80
3、解压
tar -xvf /path/to/save/image.tar
补充
1、如果要将tar还原成镜像
docker load -i /path/to/save/image.tar
或者用输入重定向
docker load < /path/to/save/image.tar
通过容器创建镜像的3种方式
1、使用docker commit
创建镜像
- 查看容器ID
docker ps -a
- 选择一个具体的运行过的容器,执行docker commit,并且指定镜像标签与版本
docker commit -m "this is comment " 8eddf9a796fc my_activemq:latest
2、使用docker export
和docker import
创建镜像
- 查看容器ID
docker ps -a
- 导出容器到文件
docker export <CONTAINER ID> > img.tar
- 加载保存的容器创建镜像
docker import img.tar <ImageName>:[Tag]
3、使用docker save
和docker load
导出容器tar创建镜像
- 导出tar
docker save -o /path/to/save/image.tar
- 加载tar
docker load < /path/to/save/image.tar
当然,除了上面3种方式,我们还可以通过docker build
命令根据 Dockerfile 创建镜像。
示例:使用docker commit构建镜像:
执行命令:docker commit -m "this is comment " 8eddf9a796fc my_activemq:latest
查看镜像:
查看镜像构建历史:
附:dockfile详解,参考这篇大神的文章,很详细。
假如是在某个pod中下载的,那我们可以使用kubectl cp
命令拷贝到我们本地
1.将pod里的文件拷贝到主机
kubectl cp -n <namespace> -c <container_name> <pod_name>:<文件绝对路径> <文件目标位置>
注:
1.文件绝对路径前面/的要去掉
2.文件目标位置不能为文件夹,必须为文件路径
例:将pod里 /data/test.sql 拷贝到主机当前路径下,并命名为test.sql
kubectl cp -n zeus -c mysql zeus-mysql-back-0:data/test.sql ./test.sql
2.将主机文件拷贝到pod文章来源:https://www.toymoban.com/news/detail-731893.html
kubectl cp <主机文件路径> -n <namespace> -c <container_name> <pod_name>:<容器内绝对路径>
注:
1.主机文件路径可以为相对路径,也可以为绝对路径。
2.pod内绝对路径前面不能有 /
例:将主机当前路径下的test.sql文件拷贝到pod的data目录下,并命名为testnew.sql文章来源地址https://www.toymoban.com/news/detail-731893.html
kubectl cp ./test.sql -n zeus -c mysql zeus-mysql-back-1:data/testnew.sql
到了这里,关于k8s手动下载镜像、通过容器创建镜像方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!