Docker容器虚拟化(二):简单入门和常用命令

一、Docker低层是如何工作的

        Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socker连接从客户端访问,守护进程从客户端接命令并管理运行在主机上的容器,容器是一个运行时环境。 

        docker有着比虚拟机更少的抽象层,由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此cpu、内存利用率上Docker将会在效率上有明显优势。

        docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个容器时,docker不需要与虚拟机一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载GuestOS,返个新建过程是分钟级别的。而Docker由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个docker容器只需要几秒钟。

二、Docker常用命令

  1. 帮助命令

    1. docker version:版本信息

    2. docker info:详细信息描述

    3. docker --help:命令帮助

  2. 镜像命令

    1. docker images:列出本地主机上的镜像

      • REPOSITORY:表示镜像的仓库源

      • TAG:镜像标签

      • IMAGE ID:镜像ID

      • CREATED:镜像创建时间

      • SIZE:镜像大小

      • 同一个仓库员可以有多个TAG,表示这个仓库源的不同个版本,我们使用REPOSITOR:TAG来定义不同的镜像。如果不指定一个镜像的版本标签,例如只有用ubuntu,docker将默认使用ubuntu:lates镜像。

      • OPTIONS说明:

        • -a:列出本地所有的镜像(喊中间映像层)

        • -q:只显示镜像ID

        • --digests:只显示镜像的摘要信息

        • --no-trunc:显示完整的镜像信息

    2. docker search [OPTIONS] 镜像名:去dockerhub查找镜像

      • OPTIONS说明:

        • --no-trunc:显示完整的镜像描述

        • -s:列出收藏数不小于指定值的镜像

        • --automated:只列出automated build类型的镜像

    3. docker pull 镜像名:下载镜像

    4. docker rmi  [OPTIONS] 镜像ID:删除镜像

      • OPTIONS:

        • docker rmi -f 镜像ID:删除单个镜像

        • docker rmi -f 镜像ID,镜像ID:删除多个镜像

        • docker rmi -f {docker images -qa}:删除所有镜像

  3. 容器命令

    1. docker run [OPTIONS] 镜像名 [COMMAND][ARG...]:新建并启动容器

      • OPTIONS:

        • --name="容器新名字":为容器指定一个名称

        • -d:后台运行容器,并返回容器ID,也即启动守护式容器;

        • -i:以交互模式运行容器,通常与-t同时使用;

        • -t:为容器重新分配一个伪输入终端

        • -P:随机端口映射

        • -p:指定端口映射,有一下四种格式

          • ip:hostPort:containerPort

          • ip::containerPort

          • hostPort:containerPort

          • containerPort

    2. docker ps [OPTIONS]:列出当前系统上运行的容器

      • OPTIONS:

        • -a:列出当前所有正在运行的容器+历史上运行过的容器

        • -l:显示最近创建的容器

        • -n:显示最近n个创建的容器

        • -q:静默模式,只显示容器编码

        • -no-trunc:不截断输出

    3. exit:容器停止退出

      • ctrl+P+Q容器不停止退出

    4. docker start 容器名或者容器id:启动容器

    5. docker restart 容器名或者容器id:重启容器

    6. docker stop 容器名或者容器id:停止容器

    7. docker kill 容器名或者容器id:强制停止容器

    8. docker rm 容器id:删除已停止的容器

      • 一次性删除多个容器

        • docker rm -f ${docker ps -a -q}

        • docker ps -a -q|xargs docker rm

    9. docker logs -f -t --tail:查看容器日志

      • -t是加入时间戳

      • -f跟随最新的日志打印

      • --tail数字 显示最后的多少条

    10. docker top 容器id:查看容器内运行的进程

    11. docker inspect 容器id:查看容器内部细节

    12. docker attach 容器id:进入一个未关闭的容器

    13. docker exec -t 容器id 执行的命令:在容器外直接执行容器命令

    14. docker cp 容器id:容器内路径 目的主机路径:从容器内拷贝文件到主机上

使用docker run -d centos会发现程序后立马就结束了,很重要的一点:Docker容器后台运行,就必须有一个前台进程。容器运行的命令如果不是那些一直挂起的命令(如运行top,tail),就会自动退出。

三、总结

猜你喜欢

转载自blog.csdn.net/qq_34886352/article/details/81744033