Docker入门-基本命令以及操作

Docker 安装

Docker 架构图

? 需要正确的理解仓储/镜像/容器这几个概念: Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。

测试


Docker 底层原理

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

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

Docker入门-基本命令以及操作

Docker常用命令

docker images 镜像命令

  • docker images:列出本地主机上的镜像
  • -a :列出本地所有的镜像(含中间映像层)
  • -q :只显示镜像ID
  • –digests :显示镜像的摘要信
  • –no-trunc :显示完整的镜像信息
  • docker search [OPTIONS] 镜像名字:在 资源仓库上搜索对应的镜像
  • docker pull [OPTIONS] 镜像名字:拉取镜像
  • docker rmi -f 镜像ID:删除单个镜像
  • docker rmi -f 镜像名1:TAG 镜像名2:TAG :删除多个镜像
  • docker rmi -f $(docker images -qa):删除全部镜像
  • docker images -f [condition] :根据条件查询本地镜像
  • docker images -f=reference=‘abc*’:查询以abc为开头的镜像
  • docker update -restart=always [容器ID]

docker run [OPTIONS]

新建并启动一个容器

  • –name=“容器新名字”: 为容器指定一个名称;
  • -d:后台运行容器,并返回容器ID,也即启动守护式容器;

docker run -d centos 会启动一个 centos 的容器,但是会立刻结束

很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的

  • -i:以交互模式运行容器,通常与 -t 同时使用;
  • -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • -P: 随机端口映射;
  • -p:指定端口映射 ,有四种配置方式
    • ip::containerPort
    • ip:hostPort:containerPort
    • hostPort:containerPort
    • containerPort

docker ps [OPTIONS]

列出当前所有正在运行的容器

  • -a :列出当前所有正在运行的容器+历史上运行过的
  • -l :显示最近创建的容器。
  • -n:显示最近n个创建的容器。
  • -q :静默模式,只显示容器编 。
  • –no-trunc :不截断输出。

docker start [containerID/containerName]

根据容器ID或名称启动指定容器

docker restart [containerID/containerName]

根据容器ID或名称重启指定容器

docker stop/kill [containerID/containerName]

根据容器ID或名称(stop)关闭容器(kill)强制关闭

docker rm [containerID]

删除已经关闭的容器

docker rm -f $(docker ps -a -q):一次性删除全部容器

docker logs -f -t –tail [containerID]

查看容器日志

  • -t:加入时间戳
  • -f:跟随最新的日志打印
  • –tail 数字:显示最后多少条

docker top [containerID]

查看容器内运行的进程

查询容器内部细节,可以通过该命令查看容器配置,数据卷挂载等重要信息

docker exec -it [containerID] bashShell

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

docker cp [containerID] :容器内路径 目的主机路径

将容器中文件拷贝至宿主机上


Docker 容器数据卷

Docker 容器产生的数据,如果不通过 docker commit 生成新的镜像,使得数据做为镜像的一部分保存下来,
那么当容器删除后,数据自然也就没有了

为了能保存数据在docker中我们使用卷,主要作用有三个:容器的持久化,容器继承数据,容器共享数据

如何使用

查看容器是否挂载成功

通过 DockerFile 挂载数据卷

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月19日
下一篇 2022年4月19日

相关推荐