• Docker篇之启动容器


    Docker篇之启动容器

    启动容器的两种方式
    基于镜像新建一个容器并启动
    将在终止状态(stopped)的容器重新启动

    1、新建并启动

    命令为 docker run
    下面的命令输出一个 “linux is not unix”,之后终止容器

    #docker run centos:latest /bin/echo 'linux is not unix'
    
    • 1

    linux is not unix
    下面的命令则启动一个 bash 终端,允许用户进行交互

    [root@VM-0-5-centos ~]# docker run -it centos:latest  /bin/bash
    [root@9448eac67d00 /]# 
    
    • 1
    • 2

    当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

    • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
    • 利用镜像创建并启动一个容器
    • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
    • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
    • 从地址池配置一个 ip 地址给容器
    • 执行用户指定的应用程序
    • 执行完毕后容器被终止

    2、启动已终止容器

    命令为docker start
    直接将一个已经终止的容器启动运行。

    3、守护态运行

    让 Docker 容器在后台以守护态(Daemonized)形式运行,可以通过添加 -d 参数来实现。

    [root@VM-0-5-centos ~]# docker run -itd centos:latest /bin/bash
    412d520ea8cdc32dad4124212ff16b30dc853aa892254c9b0204bbe991a01f36

    容器启动后会返回一个唯一的 id,也可以通过 docker ps 命令来查看容器信息。
    [root@VM-0-5-centos ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    412d520ea8cd centos:latest “/bin/bash” 8 seconds ago Up 7 seconds strange_nash

    4、终止容器

    命令为docker stop
    docker restart 命令会将一个运行态的容器终止,然后再重新启动它
    进入容器
    在使用 -d 参数时,容器启动后会进入后台。 某些时候需要进入容器进行操作,有很多种方法,包括使用docker attach 命令

    5、导出和导入容器

    5.1导出容器

    如果要导出本地某个容器,可以使用 docker export 命令。

    5.2导入容器快照

    可以使用 docker import 从容器快照文件中再导入为镜像,也可以通过指定 URL 或者某个目录来导入

    区别:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

    6、删除容器

    用 docker rm 来删除一个处于终止状态的容器。
    如果要删除一个运行中的容器,可以添加 -f 参数。Docker 会发送 SIGKILL 信号给容器。

  • 相关阅读:
    【ES6】阮一峰ES6学习(五)Set和Map联系及区别
    团建游戏------电网
    【力扣hot100】刷题笔记Day7
    【设计模式】Java设计模式 - 组合模式
    C++算法竞赛常用编程模板总结
    21.flink 水位线,彻底站起来
    【每日一题Day326】LC1222可以攻击国王的皇后 | 哈希表+模拟
    2022-08-14 C++并发编程(十一)
    MindSpore社区与北大BIOPIC联合发布蛋白质多序列比对开源数据集
    React之组件通信
  • 原文地址:https://blog.csdn.net/m0_67402013/article/details/126327630