03-Docker镜像管理¶
搜索Docker镜像¶
docker官方hub仓库地址:https://hub.docker.com/
[root@linux-bkce-node21 ~]# docker search centos #搜索所有centos的docker镜像
INDEX NAME(名称) DESCRIPTION(描述) STARS(下载次数) OFFICIAL(官方) AUTOMATED(自动化)
docker.io docker.io/centos The official build of CentOS. 1781 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / 14 [OK]
[root@linux-bkce-node21 ~]# docker pull centos:7.9.2009
如果想搜索其他版本可以使用如下命令
docker search centos:7.6.1810
docker pull centos:7.6.1810
docker pull nginx:1.20.2
docker pull nginx:1.19.9
获取Docker镜像¶
可以使用docker pull命令来从仓库获取所需要的镜像。下面的例子将从Docker Hub仓库下载一个Centos操作系统的镜像。
[root@linux-bkce-node21 ~]# docker pull centos #获取centos镜像
[root@linux-bkce-node21 ~]# docker pull alpine #获取最小的镜像文件
[root@linux-bkce-node21 ~]# docker pull nginx #获取nginx镜像
查看docker镜像¶
镜像的ID唯一标识了镜像,如果ID相同,说明是同一镜像。
TAG信息来区分不同发行版本,如果不指定具体标记,默认使用latest标记信息。
[root@linux-bkce-node21 ~]# docker images
#查看docker镜像
REPOSITORY(来自那个仓库) TAG(标签) IMAGE ID(唯一ID) CREATED(创建时间) VIRTUAL SIZE(大小)
docker.io/centos latest 60e65a8e4030 5 days ago 196.6 MB
docker.io/nginx latest 813e3731b203 13 days ago 133.8 MB
导出Docker镜像¶
如果要导出镜像到本地文件,可以使用docker save命令。
[root@linux-bkce-node21 ~]# docker save centos > /opt/centos.tar.gz #导出docker镜像至本地
[root@linux-bkce-node21 ~]# ll /opt/
-rw-r–r–. 1 root root 204205056 12月 30 09:53 centos.tar.gz
批量导出docker镜像的脚本:
vim docker_image_save.sh
#!/bin/bash
echo 3 > /proc/sys/vm/drop_caches &>/dev/null
output_dir=/opt/dockerimage
mkdir -p $output_dir
docker_images_list=$(docker images|grep -v REPOSITORY|awk '{print $1}'|xargs)
for n in $docker_images_list
do
echo 3 > /proc/sys/vm/drop_caches &>/dev/null
docker_images_link=$n
docker_images_name=$(echo "$n" |awk -F "/" '{print $NF}'|xargs)
docker_images_version=$(docker images|grep -v REPOSITORY|grep "^${n} "|awk '{print $2}'|xargs)
#echo $docker_images_link $docker_images_name $docker_images_version
echo $docker_images_link $docker_images_name $docker_images_version
docker save ${docker_images_link}:${docker_images_version} > ${output_dir}/${docker_images_name}-${docker_images_version}.tar.gz
done
ls -l $output_dir
echo 3 > /proc/sys/vm/drop_caches &>/dev/null
cd /opt/ ; tar zcf dockerimage.tar.gz dockerimage
ls -l /opt/dockerimage.tar.gz
删除Docker镜像¶
如果要移除本地的镜像,可以使用docker rmi命令(在删除镜像之前先用docker rm删除依赖于这个镜像的所有容器)。注意docker rm 命令是移除容器。
[root@linux-bkce-node21 ~]# docker rmi centos:7.9.2009
#删除docker镜像(可以指定镜像名称+tags 也可以指定镜像ID)
导入Docker镜像¶
可以使用docker load从本地文件中导入到本地docker镜像库
[root@linux-bkce-node21 ~]# docker load < /opt/centos.tar.gz
查看镜像导入情况
[root@linux-bkce-node21 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest 60e65a8e4030 5 days ago 196.6 MB
vim docker_image_load.sh
#!/bib/bash
echo 3 > /proc/sys/vm/drop_caches &>/dev/null
if [ ! -d /opt/dockerimage ];then
cd /opt/ ; tar xf dockerimage.tar.gz
fi
input_dir=/opt/dockerimage
docker_images_list=$(ls ${input_dir}|xargs)
for n in $docker_images_list
do
echo 3 > /proc/sys/vm/drop_caches &>/dev/null
docker_images_name=$n
echo $docker_images_name
docker load < ${input_dir}/$docker_images_name
done
echo 3 > /proc/sys/vm/drop_caches &>/dev/null
docker images