帮助启动类命令镜像命令
列出本机所有的镜像:docker images检索某个镜像:docker search 名字下载镜像:docker pull 镜像名字[:TAG]查看镜像/容器/数据卷所占的空间:docker system df删除镜像:docker rmi 某个XXX镜像名字/ID 容器命令
docker run:新建 + 启动容器docker ps:查看正在运行的容器退出容器docker start 容器ID/容器名:启动已关闭容器·进入正在运行的容器并以命令行交互 帮助启动类命令
·启动docker: systemctl start docker·停止docker: systemctl stop docker·重启docker: systemctl restart docker·查看docker状态: systemctl status docker·开机启动: systemctl enable docker·查看docker概要信息: docker info·查看docker总体帮助文档: docker --help·查看docker命令帮助文档: docker 具体命令 --help
这些命令应该不用过多的解释什么,来弟兄们,咱演示一波 “查-关-查-开-查”,注意看每次查的时候的状态变化:
其他不演示,打完收工。
镜像命令 列出本机所有的镜像:docker images
先前学k8s的时候遗留下来的,一会儿都删了吧,这不是本末倒置了嘛。。。
看到我们的第一行有一些标签(REPOSITORY、TAG、IMAGE ID、CREATED、SIZE):
REPOSITORY:表示镜像的仓库源TAG:镜像的标签版本号IMAGE ID:镜像IDCREATED:镜像创建时间SIZE:镜像大小
同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像。
咱再看看这个命令都有哪些 Options 支持:
就不翻译了哈。
检索某个镜像:docker search 名字
这个名字大小写不敏感,且支持模糊查询(如果记得全称建议全称查询,模糊查询的结果不保证)
可以在这儿查,也可以去 docker hub 上查,看咱心情。
看一下参数:
一般我们需要关心什么参数呢?名字肯定要了,点赞多少可以侧面反映好不好用,还有是否官方认证的哈,这个比较权威点。
照例,我们看看它的 Options 支持:
–limit : 只列出N个镜像,默认25个。
下载镜像:docker pull 镜像名字[:TAG]
有 tag 是指定版本号,没有 tag 默认最新版本。
查看镜像/容器/数据卷所占的空间:docker system df
关于这几个概念具体是什么不懂的话不急,后面就懂了。
删除镜像:docker rmi 某个XXX镜像名字/ID
通过镜像 ID 删除:
先是说镜像在使用中,不过那个容器已经是 stopped 状态了,所以我就给了它一个 -f 。
通过镜像名删除:
当然还有其他的删除方式,我就不一一演示了吧,剩下那些镜像都是我 k8s 集群要用的,当时安装不容易。
删除多个:docker rmi -f 镜像名1:TAG 镜像名2:TAG
删除全部:docker rmi -f $(docker images -qa)
还有一些命令在后面的章节中会陆续出现,所以这里没有出现不急。
容器命令有镜像才能创建容器。
docker run:新建 + 启动容器docker run,有则直接启动,无则拉取镜像了再启动。
像上面这种前台启动 redis 服务器的方式就让人很烦了,给我占用一个终端,还要担心到时候让谁给关了就GG了。
像下面那种后台启动 Ubuntu 服务的方式也让人很烦了,我启动 Ubuntu 容器拿来玩儿吗?一个终端都不给我啊!!!
那这些问题怎么处理?–help 呗,看看有哪些 Options 支持。
(有点多,我挑几个当下马上用的)
--name="容器新名字" 为容器指定一个名称;-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);-i:以交互模式运行容器,通常与 -t 同时使用;-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互);
还有一些先不说,后面章节出现的时候会说。
(中间有一步关闭 redis 容器的操作)
docker ps:查看正在运行的容器
参数说明:
ConTAINER ID:唯一容器IDIMAGE:使用镜像COMMAND:终端CREATE:启动时间STATUS:启停状态PORTS:对外暴露端口状态NAMES:容器名称,启动时若无指定名称则由 docker 随机分配一个唯一名称
Options 支持(常用)
-a :列出当前所有正在运行的容器+历史上运行过的-l :显示最近创建的容器。-n:显示最近n个创建的容器。-q :静默模式,只显示容器编号。
退出容器
在讲退出容器之前要先看一下这个:
如果是像这种理论上应该带有终端交互界面的容器没有以 -it 方式启动,那它一启动就自动关闭了,因为它觉得自己没事儿干呐,浪费资源,就关闭了。
退出容器有两种方式,一种是在容器终端执行 exit:·run进去容器,exit退出,容器停止。
一种是 Ctrl + p + q: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 logs 容器ID
查看容器内运行的进程:docker top 容器ID
查看容器内部细节:docker inspect 容器ID
咱就不多说了。
·进入正在运行的容器并以命令行交互
这也有两种方式:
docker exec -it 容器IDdocker attach 容器ID
关于这两种方式,有着关键的不同:
attach 直接进入容器启动命令的终端,不会启动新的进程 用exit退出,会导致容器的停止。
exec 是在容器中打开新的终端,并且可以启动新的进程 用exit退出,不会导致容器的停止。
一个是共用,一个是复制之后用。这里建议大家使用 exec 的方式,毕竟谁也不希望自己吃饭的时候让人把桌子给你掀了吧。
就先讲这些吧,其他的后面遇到了会再说的。