Docker基础实战教程二:镜像管理

镜像是Docker中非常重要的一个组成部分,相当于一个root文件系统,它保存着容器运行环境的文件。类比于面向对象中的类和实例,镜像是一个静态的定义,容器是镜像运行时的实体。没有镜像,将没有一切!
本实训将学习镜像管理方面的知识点,主要从镜像构成、保存于加载镜像、导入导出镜像、删除镜像这几个方面展开。希望学习完本教程,你能够有效对镜像进行管理。

基于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 > alpine.tar
#********** End **********#

#删除busybox:latest镜像
docker rmi busybox:latest

#2.从tar包加载busybox:latest镜像
#********** Begin *********#
docker load < alpine.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 > 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 rm container3
docker rmi busybox
#********** End **********#


第5关:构建私有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:latest 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

猜你喜欢

转载自blog.csdn.net/weixin_44196785/article/details/112041118