首页 > 其他分享 >3、Docker镜像管理(下载、删除、打标签、导出导入)

3、Docker镜像管理(下载、删除、打标签、导出导入)

时间:2023-06-09 14:02:13浏览次数:39  
标签:ubuntu2004 tar nginx 导入 镜像 Docker root docker

镜像管理
docker镜像是由一层一层的文件系统累积起来的
容器的组成
最下面:bootfs,引导文件系统,在镜像中不存在,用的是宿主机的内核  
然后是:rootfs,根文件系统,如centos/ubuntu
接着:镜像(jdk)
接着:镜像(tomcat)
最后:可写容器(container)
除了可写层,其他都是只读的。

这种情况可以复用,如根文件系统,多个镜像,根文件系统是一样的,可以节约空间。
docker存储引擎
Docker官方推荐首选存储引擎为overlay
镜像查询
搜索镜像:带有OK字样的是官方,最好从官方下载
[root@ubuntu2004 ~]#docker search nginx
NAME       DESCRIPTION                 STARS     OFFICIAL   AUTOMATED
nginx     Official build of Nginx.      17448     [OK]
镜像下载
[root@ubuntu2004 ~]#docker pull ubuntu  不写版本,就是最新版
ubuntu系统建议安装的基础包

# apt update                       #安装软件前需要先更新索引
# apt install procps               #提供top, ps, free等命令
# apt install psmisc               #提供pstree, killall等命令
# apt install iputils-ping         #提供ping命令
# apt install net-tools            #提供netstat网络工具等
# apt install iproute2             #提供ip,ss网络工具等
删除镜像(镜像不能使用)
docker rm删除容器
docker rm删除镜像(模板)
跟名字删除标签,跟ID删除镜像

删除所有镜像
docker rmi `docker images -q`
docker rmi -f 强制删除 (除非占用镜像的容器全部删除,才能释放镜像所占用空间)
du -sh /var/libvirt/images/overlay2/

清理无名称镜像以及不再使用的镜像,建议定期清理(无名称镜像dang ling)
docker image prune (默认之清理dang ling的镜像)
docker image prune -f(加-f为强行清理)
docker image prune -a(加-a为不再使用的)
全部删除
docker system prune -f -a
镜像打标签,类似于起别名
标识镜像(给镜像打标签)
[root@ubuntu2004 ~]#docker tag nginx:latest mefbginx
[root@ubuntu2004 ~]#docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
mefbginx      latest    605c77e624dd   9 months ago    141MB
nginx         latest    605c77e624dd   9 months ago    141MB
alpine        latest    c059bfaa849c   10 months ago   5.59MB
ubuntu        latest    ba6acccedd29   12 months ago   72.8MB
hello-world   latest    feb5d9fea6a5   12 months ago   13.3kB

上传镜像规范,才可以上传到指定的仓库
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
仓库主机FQDN或IP[:端口]/项目名(或用户名)/images名字:版本
镜像导出(此种方式适用于临时用,建议建个内网镜像仓库)
导出单个镜像

导出镜像文件(可REPOSITORY:TAG或者IMAGE ID)
[root@ubuntu2004 ~]#docker save nginx:latest -o nginx.tar
[root@ubuntu2004 ~]#ll nginx.tar 
-rw------- 1 root root 145905152 10月 16 21:20 nginx.tar
对镜像文件进行压缩
[root@ubuntu2004 ~]#gzip nginx.tar
[root@ubuntu2004 ~]#ll -h nginx.tar.gz 
-rw------- 1 root root 53M 10月 16 21:20 nginx.tar.gz
把压缩后的镜像文件传到需要的主机
[root@ubuntu2004 ~]#scp nginx.tar.gz 10.0.0.8:
[email protected]'s password: 
nginx.tar.gz 
把压缩镜像包生成镜像(自动解压缩)
[root@rocky8 ~]#docker load -i nginx.tar.gz
2edcec3590a4: Loading layer [==================================================>]  83.86MB/83.86MB
e379e8aedd4d: Loading layer [==================================================>]     62MB/62MB
b8d6e692a25e: Loading layer [==================================================>]  3.072kB/3.072kB
f1db227348d0: Loading layer [==================================================>]  4.096kB/4.096kB
32ce5f6a5106: Loading layer [==================================================>]  3.584kB/3.584kB
d874fd2bc83b: Loading layer [==================================================>]  7.168kB/7.168kB
Loaded image: nginx:latest
[root@rocky8 ~]#docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    605c77e624dd   9 months ago   141MB

导出多个镜像(可用ID但有缺陷,会丢失镜像名字)
[root@ubuntu2004 ~]#docker save 605c77e624dd c059bfaa849c -o nginx-alpine.tar
对镜像文件进行压缩
[root@ubuntu2004 ~]#gzip nginx-alpine.tar
把压缩后的镜像文件传到需要的主机
[root@ubuntu2004 ~]#scp nginx-alpine.tar.gz 10.0.0.8:
把压缩镜像包生成镜像(自动解压缩)
[root@rocky8 ~]#docker load -i nginx-alpine.tar.gz


导出所有镜像 写shell脚本
[root@ubuntu2004 ~]#docker save `docker images |awk 'NR>1{print $1":"$2}' |tr '\n' ' '` -o all.tar
对镜像文件进行压缩
[root@ubuntu2004 ~]#gzip all.tar
把压缩后的镜像文件传到需要的主机
[root@ubuntu2004 ~]#scp all.tar.gz 10.0.0.8:
把压缩镜像包生成镜像(自动解压缩)
[root@rocky8 ~]#docker load -i all.tar.gz

把全部镜像导出并生成单独文件
[root@ubuntu2004 ~]#for i in `docker image ls --format "{{.Repository}}:{{.Tag}}"`;do docker save $i -o `echo $i|cut -d: -f1`.tar ;done

把一个机器上的镜像全部打包到另一台电脑上

上面那个方法不专业,以下方法更专业
[root@ubuntu2004 ~]#docker image save `docker image ls --format "{{.Repository}}:{{.Tag}}"` -o all2.tar
对镜像文件进行压缩
[root@ubuntu2004 ~]#gzip all2.tar
把压缩后的镜像文件传到需要的主机
[root@ubuntu2004 ~]#scp all2.tar.gz 10.0.0.8:
把压缩镜像包生成镜像(自动解压缩)
[root@rocky8 ~]#docker load -i all2.tar.gz


标签:ubuntu2004,tar,nginx,导入,镜像,Docker,root,docker
From: https://blog.51cto.com/mfc001/6447211

相关文章

  • 1、Docker二进制安装脚本
    #!/bin/bashDOCKER_VERSION=20.10.19#URL=https://mirrors.aliyun.comURL=https://download.docker.comprepare(){if[!-edocker-${DOCKER_VERSION}.tgz];then#wget${URL}/docker-ce/linux/static/stable/x86_64/docker-${DOCKER_VERSION}.tgz......
  • 模块的动态导入与重载
    1、动态导入__import__(name,globals=None,locals=None,fromlist=(),level=0)->module该函数是builtins模块函数,用于动态加载模块name,str类型,可以指向某个py文件,也可以指向某个包。但是必须存在,否则会报错fromlist,tuple(str)类型,如果想加载其它包下的py文件,可以由name......
  • Oracle rac环境的数据库导入操作记录
    搞某一大项目的性能测试,将Oracle数据库dmp文件(211G)导入性能测试环境。因为Oracle部署方式为rac,数据存储到共享磁盘。但由于对rac了解不足,这个过程中犯了两个错误:①表空间、临时表空间没有创建到共享磁盘,而是创建到了数据库服务本地磁盘;②发现应该创建到共享磁盘后,直接物理删......
  • 修改docker镜像源
    修改docker镜像源原文:https://blog.csdn.net/skh2015java/article/details/82631633方法一:编辑/etc/docker/daemon.jsonvi/etc/docker/daemon.json#添加如下网易镜像源{"registry-mirrors":["http://hub-mirror.c.163.com"]}方法二:编辑/etc/sysconfig/docker......
  • 记录一次 nas docker 运行出错 使用Python脚本检查错误并重启对应容器 npc 运行出
    importosimporttimeimportdatetimeimportsubprocessimportmysql.connector#Docker容器名称container_name="containerName"#MySQL数据库连接配置db_host="localhost"db_user="*********"db_password="*********"db_......
  • docker 安装 es-head 以及Content-Type header请求头错误解决
    拉取es-head镜像,启动dockerpullmobz/elasticsearch-head:5dockerrun-itd--namees-head-p9100:9100mobz/elasticsearch-head:5使用上面的镜像启动会有Content-Typeheader请求头错误的问题,可以进入容器中修改js文件,文章最后有提及,也可编写dockerfile重做镜像,避免......
  • Windows证书管理器 && SSL certification && WSL-Docker: curl: (60) SSL certificat
    深入浅出certmgr——Windows证书管理器https://www.fke6.com/html/91605.html计算机安全是当前社会的一个重要议题,证书是一种重要的安全机制,负责证明数据、软件或者人的身份和信誉。certmgr(即“证书管理器”)是Windows中专门用于证书管理的工具。本文将从多个方面对certmgr进行深......
  • 创建/扩展表空间(导入导出等)
    --查看所有表空间的数据使用情况SELECTUpper(F.TABLESPACE_NAME)"表空间名",D.TOT_GROOTTE_MB"表空间大小(M)",D.TOT_GROOTTE_MB-F.TOTAL_BYTES"已使用空间(M)",To_char(Round((D.TOT_GROOTTE_MB-F.TOTAL_BYTES)/......
  • 解决ssh连接docker容器环境变量无效的问题
    问题缘由:因在docker容器中的linux系统输入nvcc等命令都是有效的,但通过ssh连接到docker容器内,就存在该命令未找到等问题,查询资料得知,这是因为通过ssh连接docker容器后环境变量发生了变化,修改方法:解决方法:更改字段分隔符,使之仅仅遇到换行时分割/etc/profile中添加以下代码即可......
  • Docker CLI docker diff 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......