欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Docker从入门到进阶二:Docker常用命令讲解与演示

时间:2023-07-17
文章目录

帮助启动类命令镜像命令

列出本机所有的镜像: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 的方式,毕竟谁也不希望自己吃饭的时候让人把桌子给你掀了吧。


就先讲这些吧,其他的后面遇到了会再说的。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。