docker底层原理以及常用命令

docker底层原理

docker是怎么工作的?

Docker是一个C/S结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器,容器,是一个运行时主机,就是我们前面说到的集装箱。

image-20201222085501722

为什么Docker比VM比较快

image-20201222085903999

Docker常用命令

帮助命令

  • docker version

  • docker info

  • docker --help

镜像命令

  • docker images 列出本地主机上的镜像

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

    • -q 只显示镜像ID

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

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

  • image-20201222090655379

  • docker search 某个镜像的名字 去https://hub.docker.com 去搜索镜像

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

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

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

  • docker pull 某个镜像的名字 下载镜像

    • docker pull 镜像名字[:TAG]

    如果镜像名字后面不加标签,表明就是最新版本

  • docker rmi 镜像名字ID 删除进行

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

    • 删除多个 docker rmi -f 镜像名1:TAG 镜像名2:TAG

    • 删除全部 docker rmi -f $(docker images -qa)

容器命令

有了镜像才能创建容器,这是根本前提

新建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

  • OPTIONS

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

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

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

    • -t 为容器重新分配一个伪输入终端,通常与-i同时使用

    • -P 随机端口映射

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

列出当前所有正在运行的容器 docker ps [OPTIONS]

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

-l 显示最近创建的容器

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

-q 静默模式,只显示容器的编号

--no-trunc 不截断输出

退出容器

  • 两种退出方式

    • exit 容器停止退出

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

启动容器 docker start 容器名或者容器ID

重启容器 docker restart 容器名或者容器ID

停止容器 docker stop 容器名或者容器ID

强制停止容器 docker kill 容器名或者容器ID

删除已停止的容器 docker rm 容器iD

一次性删除多个容器

  • docker rm -f $(docker ps -a -q )

  • docker ps -a -q | xargs docker rm

重要

启动守护式容器 docker run -d 容器名

查看容器日志 docker logs -f -t --tail 容器ID

  • -t 是加入时间戳

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

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

查看容器内运行的进程 docker top 容器ID

查看容器内部细节 docker inspect 容器ID

进入正在运行的容器并以命令行交互

  • docker exec -it 容器ID bashshell

  • 重新进入docker attach 容器ID

  • 上述两个区别:

    • attach 直接进入容器启动命令的终端,不会启动新的进程

    • exec 是在容器中打开新的终端,并且可以启动新的进程

从容器内拷贝文件到主机上

docker cp 容器ID :容器内路径 目的主机路径

猜你喜欢

转载自blog.csdn.net/zhanduo0118/article/details/111677415