赞
踩
之前我们用到的镜像,无论是ubuntu镜像还是busybox镜像,都是来自于官方Docker Hub中的镜像。直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,就需要在这些镜像的基础上修改,来定制符合实际需求的镜像。
基于Commit定制镜像
#以busybox镜像创建一个容器,在容器中创建一个hello.txt的文件。
#拉取busybox 最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取。
docker pull busybox
docker run --name container1 busybox touch hello.txt
#将对容器container1做出的修改提交为一个新镜像,镜像名为busybox:v1
#********** Begin *********#
docker commit container1 busybox:v1
#********** End **********#
基于save保存镜像与基于load加载镜像
#!/bin/bash #首先拉取一个busybox镜像 docker pull busybox:latest #1.将busybox:latest镜像保存到tar包 #********** Begin *********# docker save busybox:latest > busybox.tar #********** End **********# #删除busybox:latest镜像 docker rmi busybox:latest #2.从tar包加载busybox:latest镜像 #********** Begin *********# docker load < busybox.tar #********** End **********#
导入导出容器
#以busybox为镜像创建一个容器,容器名为busyboxContainer
#拉取busybox 最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取。
docker pull busybox
docker run --name busyboxContainer busybox echo "hello"
#1.然后将busyboxContainer导出为容器快照:busybox.tar
#********** Begin *********#
docker export busyboxContainer -o busybox.tar
#********** End **********#
#2.最后使用该容器快照导入镜像,镜像名为busybox:v1.0。
#********** Begin *********#
cat busybox.tar | docker import - busybox:v1.0
#********** End **********#
删除镜像
#!/bin/bash
#以busybox为基础镜像创建一个容器,容器名为container3
#拉取busybox 最新镜像,实际生产中,docker pull 这一步可以省略,docker run的时候会自己去拉取。
docker pull busybox
docker run --name container3 busybox:latest echo "hello"
#然后将busybox:latest镜像删除
#********** Begin *********#
docker rmi -f busybox:latest
#********** End **********#
构建私有Registry
#!/bin/bash #构建一个私人仓库 docker pull registry:2 docker run -d -p 5000:5000 --restart=always --name myregistry registry:2 #拉取busybox镜像 docker pull busybox #1.使用docker tag给busybox加上一个标签localhost:5000/my-busybox:latest #********** Begin *********# docker tag busybox localhost:5000/my-busybox:latest #********** End **********# #2.将localhost:5000/my-busybox:latest镜像推送到私人仓库 #********** Begin *********# docker push localhost:5000/my-busybox:latest #********** End **********# #删除本地镜像 docker rmi localhost:5000/my-busybox:latest #3.从私人仓库拉取localhost:5000/my-busybox:latest镜像 #********** Begin *********# docker pull localhost:5000/my-busybox:latest #********** End **********# #删除私人仓库并将私人仓库中的镜像也删除掉 docker rm -vf myregistry
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。