zoukankan      html  css  js  c++  java
  • Docker

    平时还是来查关于Docker的基本命令的,所有先把常用的命令写到前面方便查询。

    # 启动docker
    sudo service docker start
    
    # 停止docker
    sudo service docker stop
    
    # 重启docker
    sudo service docker restart
    
    # 列出镜像
    docker image ls
    
    # 拉取镜像
    # 像从GitHub中克隆项目一样,这个是从仓库中拉取镜像到本地,分为共有和私有两种,
    # 共有的官方仓库Docker Hub(https://hub.docker.com/)是最重要最常用的镜像仓库。
    # 私有仓库(Private Registry)是开发者或者企业自建的镜像存储库,通常用来保存企业 内部的 Docker 镜像,用于内部开发流程和产品的发布、版本控制。
    # docker image pull library/hello-world    
    # 上面代码docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。
    # 由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,可以省略。因此,上面的命令可以写成下面这样。
    docker image pull hello-world
    
    # 在拿到镜像文件之后,我们可以通过load方法,将镜像加载到本地
    docker load -i ./ubuntu.tar
    
    # 删除镜像,要确保镜像还没创建出来容器,如果创建出来容器的话,表示是运行的镜像,就删不掉,要先删运行的容器,才可以删掉镜像源。
    # docker image rm 镜像名或镜像id
    #
    docker image rm hello-world
    # ****************************************************************************************************************************************
    # 下面是常用的创建容器的命令
    
    # 查看正在运行的容器 
    docker container ls
    
    # 查看所有的容器(包括运行和不运行的)
    docker container ls --all
    
    # 运行镜像,生成容器
    # docker run [option] 镜像名 [向启动容器中传入的命令]
    # 例子中:-it表示运行后会有命令行, --name=ubuntu给这个容器取一个名字叫做ubuntu,来和docker进行交互,unbuntu是镜像名, /bin/bash是第一个要运行的命令
    docker run -it --name=ubuntu ubuntu /bin/bash
    
    # 退出Docker交互
    exit
    
    # 在后台运行Docker,加入-d选项,这样之后即使exit退出来了,它依然运行,我们可以称之为守护容器
    docker run -itd --name=ubuntu ubuntu /bin/bash
    # 上面语句运行之后之间在后台运行,不会有交互的命令行,那么如果还想和这个容器进行交互的话,运行下面的命令。
    docker exec -it ubuntu /bin/bash
    # 如果想让它停止用
    docker container stop ubuntu
    # 相应的
    # 启动一个已经停止的容器
    docker container start 容器名或容器id
    # kill掉一个已经在运行的容器
    docker container kill 容器名或容器id
    
    
    # 运行镜像生成容器时候的其他重要选项--network,-v
    # 比如:docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
    # --network=host,tracker肯定需要有网络通信的能力,这个选项的意思就是将宿主环境中的网络环境直接映射到容器里面。容器通过什么样的端口获取什么样的数据,就相当于直接操作的宿主机器,也就说我们传给宿主机器的网络中的数据,如果正好跟tracker的端口号映射进去,就相当于是直接传给了tracker。
    # -v /var/fdfs/tracker:/var/fdfs,我们操作容器的时候,其实也和操作普通的系统一样,是一个独立的空间,我们需要往里面放东西,那么我们可不可以用宿主的文件呢?-v就是映射。参数以冒号作为分隔,前面是宿主机器的目录,后面表示是容器中的目录。当我们操作容器中的/var/fdfs目录,其实操作的是宿主机器中的/var/fdfs/tracker。通过这种方式,我们可以把配置文件,程序代码,可能操作写的日志文件也映射出去。
    
    
    # 删除容器
    docker container rm 容器名或容器id
    
    # 我们可以通过如下命令将容器保存为镜像
    docker commit 容器名 镜像名
    
    # 我们可以通过save命令将镜像打包成文件,拷贝给别人使用
    # docker save -o 保存的文件名 镜像名
    #
    docker save -o ./ubuntu.tar ubuntu
    View Code

     虚拟化

    1)什么是虚拟化

    在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种 实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间 的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚 拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计 算能力和资料存储。

    在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的 硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资源充 分利用

    虚拟化技术种类很多,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、 桌面虚拟化、服务虚拟化、虚拟机等等。

    2)虚拟化种类

    1)全虚拟化架构

    虚拟机的监视器(hypervisor)是类似于用户的应用程序运行在主机的 OS 之上,如 VMware 的 workstation,这种虚拟化产品提供了虚拟的硬件。

    2)OS层虚拟化架构

     

    3)硬件层虚拟化

    硬件层的虚拟化具有高性能和隔离性,因为 hypervisor 直接在硬件上运行,有利于控制 VM 的 OS 访问硬件资源,使用这种解决方案的产品有 VMware ESXi 和 Xen server

    Hypervisor 是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系 统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以 协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor, VMM)。

    Hypervisor 是所有虚拟化技术的核心。当服务器启动并执行 Hypervisor 时,它会给每一 台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。 宿主 机

    Hypervisor 是所有虚拟化技术的核心,软硬件架构和管理更高效、更灵活,硬件的效能 能够更好地发挥出来。常见的产品有:VMware、KVM、Xen 等等。

     什么是Docer

     

    容器技术

    在计算机的世界中,容器拥有一段漫长且传奇的历史。容器与管理程序虚拟化 (hypervisor virtualization,HV)有所不同,管理程序虚拟化通过中间层将一台或者多台独立 的机器虚拟运行与物理硬件之上,而容器则是直接运行在操作系统内核之上的用户空间。因 此,容器虚拟化也被称为“操作系统级虚拟化”,容器技术可以让多个独立的用户空间运行 在同一台宿主机上。

    由于“客居”于操作系统,容器只能运行与底层宿主机相同或者相似的操作系统,这看 起来并不是非常灵活。例如:可以在 Ubuntu 服务中运行 Redhat Enterprise Linux,但无法再 Ubuntu 服务器上运行 Microsoft Windows。

    相对于彻底隔离的管理程序虚拟化,容器被认为是不安全的。而反对这一观点的人则认 为,由于虚拟容器所虚拟的是一个完整的操作系统,这无疑增大了攻击范围,而且还要考虑 管理程序层潜在的暴露风险。

    尽管有诸多局限性,容器还是被广泛部署于各种各样的应用场合。在超大规模的多租户 服务部署、轻量级沙盒以及对安全要求不太高的隔离环境中,容器技术非常流行。最常见的 一个例子就是“权限隔离监牢”(chroot jail),它创建一个隔离的目录环境来运行进程。 如果权限隔离监牢正在运行的进程被入侵者攻破,入侵者便会发现自己“身陷囹圄”,因为 权限不足被困在容器所创建的目录中,无法对宿主机进一步破坏。

    最新的容器技术引入了 OpenVZ、Solaris Zones 以及 Linux 容器(LXC)。使用这些新技 术,容器不在仅仅是一个单纯的运行环境。在自己的权限类内,容器更像是一个完整的宿主 机。对 Docker 来说,它得益于现代 Linux 特性,如控件组(control group)、命名空间 (namespace)技术,容器和宿主机之间的隔离更加彻底,容器有独立的网络和存储栈,还 拥有自己的资源管理能力,使得同一台宿主机中的多个容器可以友好的共存。

    容器被认为是精益技术,因为容器需要的开销有限。和传统虚拟化以及半虚拟化相比, 容器不需要模拟层(emulation layer)和管理层(hypervisor layer),而是使用操作系统的系 统调用接口。这降低了运行单个容器所需的开销,也使得宿主机中可以运行更多的容器。

    尽管有着光辉的历史,容器仍未得到广泛的认可。一个很重要的原因就是容器技术的复 杂性:容器本身就比较复杂,不易安装,管理和自动化也很困难。而 Docker 就是为了改变 这一切而生的。

    容器与虚拟机比较

     

    解释

    vm

    其中的server可以认为是硬件资源,host OS可以成为宿主操作系统,

    hypervisor(Type 2)构建硬件的抽象层,可以认为是vm这个软件,

    Guest OS寄生的操作系统

    Bins/,LIbs是软件的运行环境

    app是软件

    vm中的操作系统和宿主操作系统之间是完全隔离的。

    Docker

    Docker Engine:引擎, 它充当一个桥梁,就是运行环境,app和宿主环境之间的桥梁,

    Docker是能用就用宿主系统中的资源,比如说运行环境,宿主中有就用宿主的,没有的话,Docker Engine就给提供出来,所以Dockers就是能复用宿主的就用宿主的,不能就自己提供。如果是几个app使用同一种运行环境的话,也是能复用就复用。但是又和宿主操作系统之间有一定的隔阂。

    Docker特点

    1)上手快

    用户只需要几分钟,就可以把自己的程序“Docker 化”。Docker 依赖于“写时复制” (copy-on-write)模型,使修改应用程序也非常迅速,可以说达到“随心所致,代码即改” 的境界。

    随后,就可以创建容器来运行应用程序了。大多数 Docker 容器只需要不到 1 秒中即可 启动。由于去除了管理程序的开销,Docker 容器拥有很高的性能,同时同一台宿主机中也 可以运行更多的容器,使用户尽可能的充分利用系统资源。

    2)职责的逻辑分类

    使用 Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关心如 何管理容器。Docker 设计的目的就是要加强开发人员写代码的开发环境与应用程序要部署 的生产环境一致性。从而降低那种“开发时一切正常,肯定是运维的问题(测试环境都是正 常的,上线后出了问题就归结为肯定是运维的问题)”

    3)快速高效的开发生命周期

    Docker 的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应用 程序具备可移植性,易于构建,并易于协作。(通俗一点说,Docker 就像一个盒子,里面 可以装很多物件,如果需要这些物件的可以直接将该大盒子拿走,而不需要从该盒子中一件 件的取。)

    4)鼓励使用面向服务的架构

    Docker 还鼓励面向服务的体系结构和微服务架构。Docker 推荐单个容器只运行一个应 用程序或进程,这样就形成了一个分布式的应用程序模型,在这种模型下,应用程序或者服 务都可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调试应用程序 都变得非常简单,同时也提高了程序的内省性。(当然,可以在一个容器中运行多个应用程 序)

     Docker组件

    1)Docker 客户端和服务器

    Docker 是一个客户端-服务器(C/S)架构程序。Docker 客户端只需要向 Docker 服务器 或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker 提供了 一个命令行工具 Docker 以及一整套 RESTful API。你可以在同一台宿主机上运行 Docker 守护 进程和客户端,也可以从本地的 Docker 客户端连接到运行在另一台宿主机上的远程 Docker 守护进程。

    2)Docker镜像

    镜像是构建 Docker 的基石。用户基于镜像来运行自己的容器。镜像也是 Docker 生命周 期中的“构建”部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步构 建出来。例如:

    添加一个文件;

    执行一个命令;

    打开一个窗口。

    也可以将镜像当作容器的“源代码”。镜像体积很小,非常“便携”,易于分享、存储和更 新。

    3)Registry(注册中心)

    Docker 用 Registry 来保存用户构建的镜像。Registry 分为公共和私有两种。Docker 公司 运营公共的 Registry 叫做 Docker Hub。用户可以在 Docker Hub 注册账号,分享并保存自己的 镜像(说明:在 Docker Hub 下载镜像巨慢,可以自己构建私有的 Registry)。

    4)Docker容器

    Docker 可以帮助你构建和部署容器,你只需要把自己的应用程序或者服务打包放进容 器即可。容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以认为,镜 像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。 容器基于 镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务。

    所以 Docker 容器就是: 一个镜像格式; 一些列标准操作; 一个执行环境。

    Docker 借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker 将这个模 型运用到自己的设计中,唯一不同的是:集装箱运输货物,而 Docker 运输软件。

    和集装箱一样,Docker 在执行上述操作时,并不关心容器中到底装了什么,它不管是 web 服务器,还是数据库,或者是应用程序服务器什么的。所有的容器都按照相同的方式将 内容“装载”进去。

    Docker 也不关心你要把容器运到何方:我们可以在自己的笔记本中构建容器,上传到 Registry,然后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主机中。 像标准集装箱一样,Docker 容器方便替换,可以叠加,易于分发,并且尽量通用。

    使用 Docker,我们可以快速的构建一个应用程序服务器、一个消息总线、一套实用工 具、一个持续集成(CI)测试环境或者任意一种应用程序、服务或工具。我们可以在本地构 建一个完整的测试环境,也可以为生产或开发快速复制一套复杂的应用程序栈。

    使用Docker做什么

    容器提供了隔离性,结论是,容器可以为各种测试提供很好的沙盒环境。并且,容器本

    身就具有“标准性”的特征,非常适合为服务创建构建块。Docker 的一些应用场景如下:

    • 加速本地开发和构建流程,使其更加高效、更加轻量化。本地开发人员可以构建、 运行并分享 Docker 容器。容器可以在开发环境中构建,然后轻松的提交到测试环境中,并 最终进入生产环境。
    • 能够让独立的服务或应用程序在不同的环境中,得到相同的运行结果。这一点在 面向服务的架构和重度依赖微型服务的部署由其实用。
    • 用 Docker 创建隔离的环境来进行测试。例如,用 Jenkins CI 这样的持续集成工具 启动一个用于测试的容器。
    • Docker 可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是 一开始就在生产环境部署、测试。

    简单说

    vm在使用的时候是由一个镜像源,然后根据镜像源生成系统,而Docker也用镜像源生成,但是生成的不叫做系统,称之为容器。Docker公司还维护着一个Docker Hub,像GitHub一样,人们可以分享和保存自己的镜像。Docker也是属于C/S模式,Docker 客户端只需要向 Docker 服务器 或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。如果不理解的话,可以想想使用mysql的时候,我们开启mysql服务,然后通过客户端(比如终端)来进行操作。

    注意:Docker和Linux配合虽然是最好的,Mac也用的是Linux系统,但是Mac修改了Linux的内核,对网络功能限制了很多,所以在Mac中使用Docker的时候,Dockers里面又用到网络的话,那么网络就会受到限制,所以能用Linux系统还是用Linux系统。

    安装与操作

    在Ubuntu中安装Docker

    更新ubuntu的apt源索引

    sudo apt-get update

    安装包允许apt通过HTTPS使用仓库

    sudo apt-get install 
        apt-transport-https 
        ca-certificates 
        curl 
        software-properties-common

    添加Docker官方GPG key

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    设置Docker稳定版仓库

    sudo add-apt-repository 
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
       $(lsb_release -cs) 
       stable"

    添加仓库后,更新apt源索引

    sudo apt-get update

    安装最新版Docker CE(社区版)

    sudo apt-get install docker-ce

    检查Docker CE是否安装正确

    sudo docker run hello-world

    出现如下信息,表示安装成功

     

    为了避免每次命令都输入sudo,可以设置用户权限,注意执行后须注销重新登录(注意不是重写开关系统,或者开关虚拟机,Ubuntu中是右上角的设置下有个注销)

    sudo usermod -a -G docker $USER

    启动与停止

    安装完成Docker后,默认已经启动了docker服务,如需手动控制docker服务的启停,可执行如下命令

    # 启动docker
    sudo service docker start
    
    # 停止docker
    sudo service docker stop
    
    # 重启docker
    sudo service docker restart

    Docker镜像操作

    什么是Docker镜像

    Docker 镜像是由文件系统叠加而成(是一种文件的存储形式)。最底端是一个文件引 导系统,即 bootfs,这很像典型的 Linux/Unix 的引导文件系统。Docker 用户几乎永远不会和 引导系统有什么交互。实际上,当一个容器启动后,它将会被移动到内存中,而引导文件系 统则会被卸载,以留出更多的内存供磁盘镜像使用。Docker 容器启动是需要一些文件的, 而这些文件就可以称为 Docker 镜像。

    Docker 把应用程序及其依赖,打包在 image 文件里面。只有通过这个文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

    image 是二进制文件。实际开发中,一个 image 文件往往通过继承另一个 image 文件,加上一些个性化设置而生成。举例来说,你可以在 Ubuntu 的 image 基础上,往里面加入 Apache 服务器,形成你的 image。

    image 文件是通用的,一台机器的 image 文件拷贝到另一台机器,照样可以使用。一般来说,为了节省时间,我们应该尽量使用别人制作好的 image 文件,而不是自己制作。即使要定制,也应该基于别人的 image 文件进行加工,而不是从零开始制作。

    为了方便共享,image 文件制作完成后,可以上传到网上的仓库。Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库。此外,出售自己制作的 image 文件也是可以的。

    列出镜像

    docker image ls

    • REPOSITORY:镜像所在的仓库名称,名字中有的是不带斜线的,有的是带斜线的,前者是Docker官方维护的官方库中的镜像,后者是第三方创建放到Docker Hub上的。
    • TAG:镜像标签,版本。
    • IMAGEID:镜像ID
    • CREATED:镜像的创建日期(不是获取该镜像的日期,是这个镜像造出来的时间点)
    • SIZE:镜像大小

    为了区分同一个仓库下的不同镜像,Docker 提供了一种称为标签(Tag)的功能。每个 镜像在列出来时都带有一个标签,例如latest、 12.10、12.04 等等。每个标签对组成特定镜像的一 些镜像层进行标记(比如,标签 12.04 就是对所有 Ubuntu12.04 镜像层的标记)。这种机制 使得同一个仓库中可以存储多个镜像。--- 版本号

    我们在运行同一个仓库中的不同镜像时,可以通过在仓库名后面加上一个冒号和标签名 来指定该仓库中的某一具体的镜像,例如 docker run --name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash,表明从镜像 Ubuntu:12.04 启动一个容器,而这个镜像的操 作系统就是 Ubuntu:12.04。在构建容器时指定仓库的标签也是一个好习惯。

    拉取镜像

    Docker维护了镜像仓库,分为共有和私有两种,共有的官方仓库Docker Hub(https://hub.docker.com/)是最重要最常用的镜像仓库。私有仓库(Private Registry)是开发者或者企业自建的镜像存储库,通常用来保存企业 内部的 Docker 镜像,用于内部开发流程和产品的发布、版本控制。

    要想获取某个镜像,我们可以使用pull命令,从仓库中拉取镜像到本地,如

    docker image pull library/hello-world

    上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

    由于 Docker 官方提供的 image 文件,都放在library组里面,所以它的是默认组,可以省略。因此,上面的命令可以写成下面这样。

    docker image pull hello-world

     在拿到镜像文件之后,我们可以通过load方法,将镜像加载到本地

    docker load -i ./ubuntu.tar

    删除镜像

    docker image rm 镜像名或镜像id

    docker image rm hello-world

     注:要确保镜像还没创建出来容器,如果创建出来容器的话,表示是运行的镜像,就删不掉,要先删运行的容器,才可以删掉镜像源。

    Docker 容器操作

    创建容器

    docker run [option] 镜像名 [向启动容器中传入的命令]

    常用可选参数说明:

    • -i 表示以“交互模式”运行容器
    • -t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即 分配一个伪终端。
    • --name 为创建的容器命名
    • -v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即 宿主机目录:容器中目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
    • -d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不 会自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
    • -p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
    • -e 为容器设置环境变量
    • --network=host 表示将主机的网络环境映射到容器中,容器的网络与主机相同

    -v和--network详解:

    # 运行镜像生成容器时候的其他重要选项--network,-v
    # 比如:docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs delron/fastdfs tracker
    
    # --network=host
    tracker肯定需要有网络通信的能力,这个选项的意思就是将宿主环境中的网络环境直接映射到容器里面。
    容器通过什么样的端口获取什么样的数据,就相当于直接操作的宿主机器,也就说我们传给宿主机器的网络中的数据,
    如果正好跟tracker的端口号映射进去,就相当于是直接传给了tracker。
    
    # -v /var/fdfs/tracker:/var/fdfs
    我们操作容器的时候,其实也和操作普通的系统一样,是一个独立的空间,我们需要往里面放东西,那么我们可不可以用宿主的文件呢?-v就是映射。
    参数以冒号作为分隔,前面是宿主机器的目录,后面表示是容器中的目录。当我们操作容器中的/var/fdfs目录,其实操作的是宿主机器中的/var/fdfs/tracker。
    通过这种方式,我们可以把配置文件,程序代码,可能操作写的日志文件也映射出去。
    View Code

    交互式容器

    例如,创建一个交互式容器,并命名为myubuntu

    docker run -it --name=myubuntu ubuntu /bin/bash

    在容器中可以随意执行linux命令,就是一个ubuntu的环境,当执行exit命令退出时,该容器也随之停止。

    守护式容器

    创建一个守护式容器:如果对于一个需要长期运行的容器来说,我们可以创建一个守护式容器。在容器内部exit退出时,容器也不会停止。

    docker run -dit --name=myubuntu2 ubuntu

    进入已运行的容器

    docker exec -it 容器名或容器id 进入后执行的第一个命令

    docker exec -it myubuntu2 /bin/bash

    查看容器

    # 列出本机正在运行的容器
    docker container ls
    
    # 列出本机所有容器,包括已经终止运行的
    docker container ls --all
    • CONTAINER ID是创建出来的容器的id

    • IMAGE表示是哪个镜像源创建出来的
    • COMMAND表示容器启动后,运行的第一条命令是什么
    • CREATED当前容器创建的时间
    • STATUS当前的容器状态是什么

    停止与启动容器

    # 停止一个已经在运行的容器
    docker container stop 容器名或容器id
    
    # 启动一个已经停止的容器
    docker container start 容器名或容器id
    
    # kill掉一个已经在运行的容器
    docker container kill 容器名或容器id

    删除容器

    docker container rm 容器名或容器id

    将容器保存为镜像

    我们可以通过如下命令将容器保存为镜像

    docker commit 容器名 镜像名

     镜像备份与迁移

    我们可以通过save命令将镜像打包成文件,拷贝给别人使用

    docker save -o 保存的文件名 镜像名

    docker save -o ./ubuntu.tar ubuntu

    在拿到镜像文件后,可以通过load方法,将镜像加载到本地

    docker load -i ./ubuntu.tar

     


     
  • 相关阅读:
    Mysql基本操作
    MySql架构
    并发中关键字的语义
    SpringMVC<一> 基本结构与配置
    Tomcat 顶层结构
    Linux 日常常用指令
    JSON 数据格式
    RMAN 增量备份级别说明
    Oracle常用数据库系统表单以及SQL的整理
    使用puTTY或Xshell连接阿里云TimeOut超时
  • 原文地址:https://www.cnblogs.com/kuxingseng95/p/9296284.html
Copyright © 2011-2022 走看看