本文共 2928 字,大约阅读时间需要 9 分钟。
docker的物理组件有三个, 客户端, daemon registry 仓库
逻辑组件主要也是三个 container image registry Docker组件: 物理: Client <–> Daemon <–> Registry Server 逻辑: Containers:容器 所有的container一般都听过 image镜像启动的 Images:镜像、映像 应该放在Image Repositories Registry:Image Repositories想要允许docker容器
docker images 查看有哪些镜像文件 pull 下载一个镜像 run 创建并且运行容器 ps 查看容器https://docs.docker.com/reference/ 查看docker相关的信息: version 查看docker主机当前版本号,由哪个程序包提高,APi版本号,go语言所研发的 info 构建时间,适用的平台 moby,所有搜索docker关键词导向docker站点而不是这个开源项目,docker现在有两个发行分支,EE,CE 企业版,社区版, 一旦docker运行以后,info开以去查看docker主机的一些命令 处于什么状态的,以及有几个镜像 存储驱动,ubuntu用的是unionfs 日志驱动 默认获取路径 查看docker相关的信息: version info查看当前系统上的运行docker容器相关信息 镜像:相关命令 images rmi删除镜像 pull 拉取一个镜像 容器:相关命令 run:创建并运行一个容器; create:创建一个容器; start:启动一个处于停止状态容器;容器状态又很多种 created已创建状态 running 运行状态 paused暂停状态 stopped停止状态 deleted已删除
容器的状态: created: 已创建 runing:运行中 paused:暂停 stopped: 停止 deleted:已删除 创建: create run启动: start
停止: kill stop
重启: restart
暂停和继续: pause unpause
删除容器: rm run --rm 运行±-rm选项,容器关闭会自动删除
内存耗尽kill,会进入oom,然后经过策略查看是否需要重启,kill一个容器相当于拔电源,优雅中止使用了docker stophttps://docs.docker.com/engine/reference/commandline/run/
基于这个image来创建容器,每一个镜像文件都又要默认执行的命令创建容器: 基于“镜像文件”, 镜像文件有默认要运行的程序;注意: 运行的容器内部必须有一个工作前台的运行的进程;这个程序不运行,容器就关闭了 docker的容器的通常也是仅为运行一个程序; 要想在容器内运行多个程序,一般需要提供一个管控程序,例如supervised。
run, create 通常需要给的一些选项 –name CT_NAME 容器名 container name –rm:容器运行终止即自行删除 –network BRIDGE桥:让容器加入的网络;让容器关联到哪个桥上,因为桥一般附属于一个网络 默认为docker0;
交互式启动一个容器: -i:–interactive,交互式; -t:Allocate a pseudo-TTY 附加到一个终端上,分配一个伪终端,并附加用户至此终端
从终端拆除:ctrl+p, ctrl+q
attach:附加至某运行状态的容器的终端设备; exec:让运行中的容器运行一个额外的程序;
start可以关联到控台上,如果附加到终端以后,要拆除终端,不可以使用exit命令,exit等于docker进程也停止 从终端拆除:先ctrl+p, 后ctrl+q 拆除以后想要再回到终端,进行交互式模式,使用ps可以看到当前处于up运行状态 附加终端使用attach,容器名是c1,拆除先ctrl+p, 后ctrl+q
attach:附加至某运行状态的容器的终端设备; https://docs.docker.com/engine/reference/commandline/attach/ 几乎选项都没什么要用的 想要运行命令就直接退出 可以让容器启动起来后,不再运行默认的shell命令,运行结束,容器就中止了 替换image镜像默认运行的程序指定为自己的程序,把这个程序写在最后,给个程序名即可https://docs.docker.com/engine/reference/commandline/exec/ 现在是正常运行状态 正常运行了一个程序,想要执行其他程序 -exec指明在哪个容器上运行什么命令,在容器上运行额外命令的 容器没有中止还在运行着 这是一个让一个运行中的容器,额外运行其他命令的,exec exec:让运行中的容器运行一个额外的程序; https://docs.docker.com/engine/reference/commandline/logs/ logs不是看日志,表示在一个容器上运行命令的历史,相当于查看容器内部命令操作的历史 再次使用logs,就可以看到曾今运行过ifconfig,包括命令历史和终端的输出信息 查看: logs:Fetch the logs of a container,容器内部程序运行时输出到终端的信息; https://docs.docker.com/engine/reference/commandline/ps/ 列出容器,查看容器 根据某个条件过滤显示某个容器 ‘只显示bbox3’ 也可以支持通配符 ps:List containers 查看运行中的容器 -a, --all:列出所有容器; –filter, -f:过滤器条件显示,可以指定字段的过滤器进行过滤 name= status={stopped|running|paused} 仅显示某种状态的容器 只显示在什么之前创建的容器 在什么之后 只查看属于某个网络的容器https://docs.docker.com/engine/reference/commandline/rename/ 给容器重命名 rm是删除容器,删除之前确保容器内没有我们要的数据 https://docs.docker.com/engine/reference/commandline/stats/ 显示容器资源消耗的 运行时的cpu,内存占用率,网络IO,磁盘IO,以动态输出的方式,显示容器的资源占用情况, stats:动态方式显示容器的资源占用状态:https://docs.docker.com/engine/reference/commandline/top/ 显示一个容器运行的命令 **显示一个容器内部正在运行的命令 top:Display the running processes of a container ** 跟容器相关的查看的命令转载地址:http://vckgn.baihongyu.com/