zoukankan      html  css  js  c++  java
  • Docker学习四:容器基本操作

    一、什么是容器

      容器是基于镜像创建的实例,可以单独存在,一个镜像可以创建多个容器。下图是是容器的组成:

    二、容器的生命周期

    容器的生命周期分为如下几种状态:

    1. created:初建状态
    2. running:运行状态
    3. stopped:停止状态
    4. paused: 暂停状态
    5. deleted:删除状态

    各个状态之间的转换关系如图所示:

    三、容器的基本操作

    1、创建并启动容器

    docker start命令启动已经创建好的容器
    #创建容器
    docker  create -it  --name=mybusybox busybox
    
    #启动创建的容器
    docker start mybusybox

    由上面操作步骤可知:docker create 基于镜像创建的容器处于停止状态,可以通过docker start命令启动

    docker run基于镜像直接创建并启动容器
    #运行容器
    docker run -it --name=mybusybox busybox
    docker运行容器执行的流程:
    • Docker 会检查本地是否存在 busybox 镜像,如果镜像不存在则从 Docker Hub 拉取 busybox 镜像;
    • 使用 busybox 镜像创建并启动一个容器;
    • 分配文件系统,并且在镜像只读层外创建一个读写层;
    • 从 Docker IP 池中分配一个 IP 给容器;
    • 执行用户的启动命令运行镜像。

    2、终止容器

    docker stop命令可以停止运行中的容器,停止后可以通过docker start命令启动;也可以通过docker restart命令重启正在运行中的容器

    3、进入容器

    docker attach 容器名称/容器ID

    注意点:当在多个终端同时用docker attach进入容器后,所有的终端都会同步显示相同的命令,如果其中某个终端的命令阻塞了,则所有的终端都无法操作

    docker excel方式进入容器
    docker exec -it busybox sh

    推荐使用这种方式进入容器,每个命令行会单独开启一个sh进程,互不影响。

    4、删除容器

    删除停止状态的容器:docker rm 容器名称/容器ID

    强制删除运行状态的容器:docker rm -f 容器名称/容器ID

    5、导出导入容器

    docker export 和docker import命令可以完成容器的迁移工作:

    #进入容器并创建test目录:
    docker exec -it fff sh
    cd /tmp && touch test
    
    #退出容器后,执行docker export命令
    docker export mybusybox > busybox.tar
    
    #通过docker import命令导入上一步生成的文件,生成新的镜像
    docker import busybox.tar busybox:test
    
    #通过docker run运行上一步生成的镜像
    docker run -it busybox:test sh
    
    #进入新运行的容器中,可以发现容器中包含第一步中创建的文件夹
  • 相关阅读:
    Luogu P4246 [SHOI2008]堵塞的交通(线段树+模拟)
    Luogu P2619 [国家集训队2]Tree I(WQS二分+最小生成树)
    Luogu P2042 [NOI2005]维护数列(平衡树)
    Luogu P1052 过河(dp)
    Luogu P1041 传染病控制(搜索)
    Luogu P2717 寒假作业(平衡树)
    Luogu P2822 组合数问题(前缀和)
    Luogu P2827 蚯蚓(模拟)
    随机图片测试
    Luogu P2458 [SDOI2006]保安站岗(树形dp)
  • 原文地址:https://www.cnblogs.com/canghai1024/p/13665084.html
Copyright © 2011-2022 走看看