【云原生】Docker镜像和容器的导入导出及常用命令

【云原生】Docker镜像和容器的导入导出及常用命令本文是对Docker的镜像和容器的一些操作指令的汇总,比如镜像和容器的导入导出,以及一些在使用过程中的常用命令。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

大家好,本文是对 Docker 的镜像和容器的一些操作指令的汇总,比如镜像和容器的导入导出,以及一些在使用过程中的常用命令。希望对大家有所帮助~

一、Docker 镜像和容器的导入导出

1.1、镜像的导入导出

1.1.1、镜像的保存

  • 通过镜像ID保存

    • 方式一:

      docker save image_id > image-save.tar
      

      例如:

      root@Ubuntu:/usr/local/docker/nginx# docker images
      REPOSITORY      TAG                 IMAGE ID       CREATED         SIZE
      openjdk         8-jre               26ac3f63d29f   2 months ago    273MB
      nginx           1.21.3              87a94228f133   4 months ago    133MB
      root@Ubuntu:/usr/local/docker/nginx# docker save 87a94228f133 > nginx-save.tar
      
    • 方式二:

      docker save -o image-save.tar image_id
      

      例如:

      root@Ubuntu:/usr/local/docker/nginx# docker images
      REPOSITORY      TAG                 IMAGE ID       CREATED         SIZE
      openjdk         8-jre               26ac3f63d29f   2 months ago    273MB
      nginx           1.21.3              87a94228f133   4 months ago    133MB
      root@Ubuntu:/usr/local/docker/nginx# docker save -o nginx-save.tar 87a94228f133
      
  • 通过镜像repositorytag保存

    docker save -o image-save.tar repository:tag
    

    例如:

    root@Ubuntu:/usr/local/docker/nginx# docker images
    REPOSITORY      TAG                 IMAGE ID       CREATED         SIZE
    openjdk         8-jre               26ac3f63d29f   2 months ago    273MB
    nginx           1.21.3              87a94228f133   4 months ago    133MB
    root@Ubuntu:/usr/local/docker/nginx# docker save -o nginx-save.tar nginx:1.21.3
    

1.1.2、镜像的导入

  • 方式一:

    docker load < nginx-save.tar 
    
  • 方式二:

    docker load -i nginx-save.tar
    
  • 注意

    • 使用 image_id作为参数的方式导出的镜像包进行导入会出现 none的情况,需要手动打标签

      docker tag 87a94228f133 nginx:1.21.3
      
    • 使用镜像 repository:tag 作为导出参数的方式则正常

1.2、容器的导入和导出

1.2.1、容器的导出

容器的导出是将当前容器变成一个容器包

root@Ubuntu:/usr/local/docker/nginx# docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED      STATUS       PORTS                                        NAMES
66b23477cdc6   nginx:1.21.3  "/docker-entrypoint.…"   7 days ago   Up 3 hours   80/tcp, 0.0.0.0:80->80/tcp, :::80->80/tcp    nginx_51tj
root@Ubuntu:/usr/local/docker/nginx# docker export -o nginx-export.tar 66b23477cdc6

1.2.2、容器包的导入

docker import nginx-export.tar nginx:1.21.3-new

exportimport 导出的是一个容器的快照, 不是镜像本身, 也就是说没有 layer

你的 dockerfile 里的 workdir, entrypoint 之类的所有东西都会丢失,commit 过的话也会丢失。

快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也更大。

注意:

  • docker save 保存的是镜像(image),docker export 保存的是容器(container);
  • docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像;
  • docker load 不能对载入的镜像重命名,而 docker import 可以为镜像指定新名称。

二、Docker 常用命令

查看 Docker 版本

docker version

从 Docker 文件构建 Docker 映像

docker build -t image-name docker-file-location

运行 Docker 映像

docker run -d image-name

查看可用的 Docker 映像

docker images

查看最近的运行容器

docker ps -l

查看所有正在运行的容器

docker ps -a

停止运行容器

docker stop container_id

删除一个镜像

docker rmi image-name

删除所有镜像

docker rmi $(docker images -q)

强制删除所有镜像

docker rmi -r $(docker images -q)

删除所有虚悬镜像

docker rmi $(docker images -q -f dangling=true)

docker image prune

删除所有容器

docker rm $(docker ps -a -q)

进入 Docker 容器

docker exec -it container-id /bin/bash

查看所有数据卷

docker volume ls

删除指定数据卷

docker volume rm [volume_name]

删除所有未关联的数据卷

docker volume rm $(docker volume ls -qf dangling=true)

从主机复制文件到容器

sudo docker cp host_path containerID:container_path

从容器复制文件到主机

sudo docker cp containerID:container_path host_path

读到这里,想必你已经对 Docker 容器和镜像的常用操作以及命令有了更加深入的理解。别忘了三连支持博主呀~
我是微枫Micromaple,期待你的关注~???

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196846.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • docker(11)Dockerfile 中的COPY与ADD 命令[通俗易懂]

    docker(11)Dockerfile 中的COPY与ADD 命令[通俗易懂]前言Dockerfile中提供了两个非常相似的命令COPY和ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。Build上下文的概念在使用dock

  • Docker 离线安装_docker官方中文文档

    Docker 离线安装_docker官方中文文档docker离线安装流程

  • docker拷贝目录到容器_docker退出容器命令

    docker拷贝目录到容器_docker退出容器命令现在公司用docker,有时候需要从容器中拷贝文件出来。先上语法:dockercp[OPTIONS][CONTAINER_ID]:[SRC_PATH][DEST_PATH]语法是这么个写法,在实际的操作中,在写容器内的路径的时候并不能自动补全,所以实际上还需要还要先进入到容器才行。下面就拿个实例来讲下:1.在服务器上用有权限的用户,执行dockerps查看全部容…

  • 在 docker 之间导出导入镜像「建议收藏」

    在 docker 之间导出导入镜像「建议收藏」很喜欢玩docker,但最新遇到一个问题,公司给的新机器的dns有问题,导致pull不下来镜像。没办法了,没有镜像什么神马都干不了,又不能花很多时间去搭建私有的镜像库,只有另寻办法了。废话少说,经过探究,发现docker提供把镜像导出export(保存save)为文件的机制,这样就可以把镜像copy到任意地方了。1.导…

  • docker映射端口命令_docker底层原理

    docker映射端口命令_docker底层原理一、容器为什么要做端口映射查看宿主机的IP信息docker容器的IP信息下面面这一段这就是docker的网络,我们可以看到它的网段是172.17.0.0段的。3:docker0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscnoqueuestateUPgroupdefaultlink/ether02:42:b6:4b:f0:16brdff:ff:ff:ff:ff:ffinet172.17.0

    2022年10月11日
  • docker的常用命令汇总_常用docker命令

    docker的常用命令汇总_常用docker命令文章目录Docker命令总结Docker命令总结还在百度Docker命令?推荐一套我用起来特顺手的命令!简介:Docker是一个开源的应用容器引擎,让开发者可以打包应用及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。使用Docker可以更方便地打包、测试以及部署应用程序。Docker镜像官网阿里云镜像中心Docker环境安装:#安装yum-utilsyuminstall-yyum-utilsdevice-mapper-persistent-dat

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号