Docker笔记1-基本概念

架构

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker使用客户端-服务器(C/S)架构模式,使用远程API来管理和创建Docker容器

  • Docker主机:一个物理或者虚拟的机器用于执行Docker守护进程和容器

  • Docker Registry:Docker仓库用来保存镜像,可以理解为代码控制中的代码仓库
    一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
    通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

  • Docker Machine:是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

镜像

镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

镜像加载原理

unionfs

unionfs:联合文件系统,是一种分层、轻量级且高性能的文件系统,支持对文件系统的修改作为一次提交来一层层叠加,同时可以将不同目录挂载到同一个虚拟文件系统下
union文件系统是Docker镜像的基础。镜像通过分层来继承,基于基础镜像制作各种具体的应用镜像

镜像加载原理

bootfs (boot fie system)主要包含bootloader和kernel,bootloader主要是引导加载kernel,LInux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Uni系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。

rootfs(root file system),在bootfs之上。包含的就是典型Linux系统中的/dev,/proc,/bin,/etc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。

镜像常用命令

直接输入docker命令查看Docker客户端的所有命令选项
通过docker command --help深入了解指定的Docker命令的用法
常用的:

docker pull ubuntu //拉取镜像
docker image //查看本地的镜像
docker rmi -f 镜像id //删除镜像
docker rmi -f $(docker images -aq) //删除全部镜像

容器常用命令

运行容器

docker run [可选参数] 镜像id //用镜像新建容器启动

可选参数说明:

  • –name 指定容器名称
  • -d 后台方式运行
  • -it 使用交互方式运行,进入容器内查看
  • -p 指定容器的端口 -p 8080:8080
    -p ip:主机端口:容器端口
    -p 主机端口:容器端口 (常用)
    -p 容器端口(没有对外开放端口)
    端口
  • -P 随机指定端口

docker run -it ubuntu /bin/bash //启动容器例子
//-i表示交互式操作,-t表示终端,镜像ubuntu后的是命令,交互式shell

查看容器

docker ps [可选参数]

可选参数说明:

  • -a: 代表查看全部的容器,包括没有运行
  • -q: 只查看容器的标识
  • -f: 根据条件过滤显示的内容
  • –format: 指定返回值的模板文件
  • -l: 显示最近创建的容器
  • -n: 列出最近创建的n个容器
  • –no-trunc: 不截断输出
  • -s: 显示总的文件大小

启动和停止容器

docker start 容器id //启动容器
docker restart 容器id //重启动容器
docker stop 容器id //停止正在运行的容器
docker kill 容器id //强制停止容器

删除和退出容器

docker rm 容器id //删除容器(删除前需停止容器运行,除非强制删除)
docker rm -f $(docker ps -aq) //删除所有容器
docker ps -a -q | xargs docker rm //删除所有容器
exit //直接退出
Ctrl + P + Q //容器不停止退出

其他容器命令

查看日志

docker logs [可选参数] 容器id

可选参数说明:

  • -t 显示日志
  • -f 滚动查看
  • –tail number 显示的日志条数

查看进程信息

docker top 容器id

猜你喜欢

转载自blog.csdn.net/MinutkiBegut/article/details/115291592