Network 资源等还保留未动
发布时间:2025-06-24 19:08:58 作者:北方职教升学中心 阅读量:263
Network 资源等还保留未动。
dockerrenameCONTAINER NEW_NAME
dockercontainer rename
如下图:我们使用
docker rename
给一个容器重命名。
docker kill
- 功能:“杀死” 一个处于 running 状态的容器,和我们在学习 linux 的时候的 kill 命令很像。
其他的参数就就不演示啦,都比较简单,大家可以在自己的电脑上试一试。而 docker kill
默认发送的是 SIGKILL
信号,这个信号可以通过参数 -s
来调整。
docker run
的时候加上 -ti
选项嘛。dockerrmCONTAINER [CONTAINER...]
dockercontainer rm
- -f:通过 SIGKILL 信号强制删除一个处于 running 状态中的容器。
如下图:我有一个正在运行的容器,
docker ps
显示该容器已经运行了 12 分钟,使用 docker restart
命令之后再次 docker ps
可以看到该容器的运行时间变成了 12 秒。dockercontainer cp
我们启动一个 nginx 镜像容器,然后修改这个 nginx 服务器的主页!如下图,nginx 服务器主页的 html 文件是在:
/usr/share/nginx/html
目录下的!因为容器中没有 vim / vi 所以有拷贝到宿主机修改 index.html
文件的需求!
/usr/share/nginx/html/index.html
文件给他拷贝到宿主机来!我们先创建一个目录用来放这个文件,然后进入到这个目录里面,使用 docker cp
命令将容器中的这个文件拷贝到当前目录就行啦!
vim index.html
编辑这个文件,将 “Welcome to nginx!” 改为 “Welcome to docker!”。然后我们按下 ctrl + c
就能直接退出容器。容器异常退出
每个容器内部都存在一个 Init 进程,容器中其他所有进程都是此进程的子进程。
可以看到,成功将 nginx 服务器的首页改啦!docker diff
功能:检查容器文件系统上文件或目录的更改。在我们的服务器放行了 32768 的前提下,我们就能够使用公网 IP 加上端口号访问容器中启动的 nginx 服务啦!在本例中就是:
47.108.251.0:32768
显然,这种随机映射的方式很不友好,我们在启动一个容器的时候,应该指定端口映射,而不是让系统来随机分配,这个时候我们就可以使用 -p 选项啦!
我们指定主机的 80 端口映射到容器的 80 端口,这样我们就可以使用 80 端口来访问容器中启动的 nginx 服务啦!如下图:我们在运行容器的时候给容器指定一个名称。
容器的日志文件在哪里
其实容器的日志是保存在一个文件中的!
- 我们先输入
docker info
命令查看一下 Docker 的根目录:
我的目录可能和你们查看到的目录不一样,因为我之前更改过 Docker Root Dir。- NET I/O:容器通过其网络接口发送和接收的数据量。而其他资源,如 Memory 资源、
- 返回的数据:
- CONTAINER ID 与 NAME:容器 ID 与名称。
- –memory:内存限制。
- container process exited:出现容器被终止后,将进入是否应该 restart 的选择。输出和错误(或三者的任意组合)附加到正在运行的容器上。
- 语法:
dockerlogs [OPTINONS]CONTAINER
- 别名:
dockercontainer logs
- 参数:
- -f或 –flow:持续跟踪日志输出。
- stopped:停止状态。
- -f:根据过滤条件显示容器。下面是常用的过滤条件:
- status:状态可以是下面的任意一个:
created
,restarting
,running
,removing
,paused
,exited
, 或者dead
。- 语法:
dockerstats [OPTIONS][CONTAINER...]
- 别名:
dockercontainer stats
- 参数:
- -a或 -all:显示所有的容器,包括没有运行的。
容器暂停
Docker“剥夺”了此容器的 CPU 资源。
MEM USAGE / LIMIT:容器正在使用的总内存,以及允许使用的内存总量。 如下图,我们可以使用 -h 选项指定容器的 hostname。
Docker Container (容器) 常见命令
docker run
功能:创建一个新的容器并运行一个命令。如:table,json 等等。
- 语法:
后面的dockerstart [OPTIONS]CONTAINER [CONTAINER...]
CONTAINER
可以是容器的名字,容器 id 的前缀(docker ps
出来的容器 id),或者完整的容器 id (docker ps --no-trunc
出来的容器 id)。 - 语法:
dockerkill[OPTIONS]CONTAINER [CONTAINER...]
- 别名:
dockercontainer kill
- 参数:
- -s或 –signal:给容器发送一个信号。
docker prune
: 用来删除不再使用的 docker 对象。- 参数:
- -c或 –change:现在没法讲,这个选项会将 Dockerfile 指令应用到镜像。要从远程位置导入,请指定以 http:// 或 https:// 协议开头的 URI。
- -p:指定端口映射,格式为:主机(宿主)端口:容器端口。
- -i:连接到容器的 STDIN,即使没有连接到这个容器!
- -t:分配一个伪终端。
各个生命周期的转换关系如图所示:
- docker create:创建容器后,不立即启动运行,容器进入初建状态。即容器运行着真正的应用进程。
- 语法:
dockercontainer inspect [OPTIONS]CONTAINER [CONTAINER...]
- 别名:
dockerinspect # 查看镜像详细信息可以使用 docker inspect 查看容器也可以用,Docker 引擎会自动识别你要查看的是镜像还是容器的!
- 参数:
- -f:指定返回的模板文件。运行 的容器是因为 Init 进程在运行,如果一个子进程因为某种原因造成了退出,那么其父 进程也会同步退出,直至 Init 进程也退出。网络等信息, 这是容器与直接运行在主机上进程的本质区别。
docker attach
- 功能:连接到正在运行的容器。
docker export container_id
:将一个容器导出为文件,再使用docker import
命令将容器导入成为一个新的镜像,但是相比docker save
命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。- BLOCK I/O:容器从主机上的块设备读取和写入的数据量。
- –no-trunc:不截断输出。.tgz、停止、URL 可以指向包含文件系统的存档(.tar、
- -p:在提交的时候将容器暂停,默认 -p 为 true 表示默认是暂停的!
- -f:指定返回的模板文件。运行 的容器是因为 Init 进程在运行,如果一个子进程因为某种原因造成了退出,那么其父 进程也会同步退出,直至 Init 进程也退出。网络等信息, 这是容器与直接运行在主机上进程的本质区别。
- 演示:
如下图:我们使用docker commit
命令将 mynginx 容器提交为镜像,在提交的过程中容器会被暂停,但是这个暂停的过程不好演示,你可以尝试一直刷新浏览器来试试!可以看到提交成功之后再本地就会多出这个镜像啦!
我们使用docker image inspect
查看这个镜像的详细信息:可以看到保留了很多原容器镜像的诸多信息,docker commit
将原容器提交为镜像时,原容器中增加的环境变量也会被包含到新镜像的 env 中!!!
你不是说,
docker commit
会将原容器的信息提交为镜像嘛,我们之间不是修改了 nginx 的主页嘛!首先,我们将原来的那个容器 stop 掉,然后使用 commit 出来的镜像重新启动一个容器!发现确实是将原容器的信息保存啦!因为我们访问到的是Welcome to docker!
嘛!docker port
- 功能:用于列出指定容器的端口映射。
- docker start:容器转为运行状态。格式:
<name|uid>[:<group|gid>]
- -w或 –workdir:指定工作目录。
- CPU % 与 MEM %:容器使用的 CPU 和内存的百分比。
- yes:需要重启,容器执行 start 命令,转为运行状态。
- no:不需要重启,容器转为停止状态。
- docker stop:容器转入停止状态。docker start 和 docker run 有什么区别?
docker create 命令从 Docker 映像创建一个全新的容器。
- 演示:
如下图:我么使用docker logs -f
持续追踪这个 nginx 镜像容器的日志输出,可以看到随着我不断刷新网页,日志信息也会随着更新。json 或者 table 等等。docker stop
- 功能:停止一个或者多个处于 running 状态的容器。
- docker kill:容器在故障时,执行 kill,容器将进入停止状态,这种操作容易丢失数据,除非必要,否则不建议使用。而在这种情况下,此容器将会被强制关闭。
docker top
- 功能:查看容器中运行的进程信息,支持 ps 命令参数。代码(镜像)是静态的,包含了程序运行所需要的所有指令和数据;而程序(容器)是动态的,是代码在特定环境下的运行实例。但是,它不会立即运行它。
docker rm & docker rmi & docker prune 的差异?
docker rm
: 删除一个或多个容器。
下面我们一直点击刷新,看看 mynginx 容器的资源使用情况的变化:
可以看到主要是 NET I/O 在变化哈!CPU 也有变化,但是不多!
其他的选项就不演示了,比较简单!
docker container inspect
- 功能:查看容器的详细信息。
- -s:显示文件的大小。
- 演示:
- 如下图:我们使用
docker kill
命令终止一个容器。 - -i:以交互模式运行容器,通常与 -t 选项同时使用。
- 演示:
可以看到 docker create 的参数基本上和 docker run 的参数是一样的!docker create 没有 -d 选项吧!!
如下图:我们使用 docker create 命令创建一个容器但是没有运行它!可以看到这个容器的状态是 Created 状态哈!我们可以使用 docker start 启动处于 Created 状态的容器。 - -t或 –timestamps:显示时间戳。
- -q:只显示容器编号。
- -n:列出最近创建的 n 个容器。如果使用 docker create 命令创建容器,
则可以使用此命令启动它。
别名:
dockercontainer diff
演示:
如下图:我们查看 mynginx 这个容器的文件系统更改情况。- 语法:
dockerstop [OPTIONS]CONTAINER [CONTAINER...]
- 别名:
dockercontainer stop
- 参数:
- -s或 –signal:给容器发送一个信号。
- -P:随机端口映射,容器内部的端口随机映射到主机的端口。 例如,在容器当中,部署了一个 web 服务。 容器是基于镜像创建的可运行实例,并且单独存在,一个镜像可以创建出多个容器。
- –cpuset-cpus:绑定容器到指定的 CPU 上运行。
- deleted:删除状态。
- paused:暂停状态。会显示三种不同类型的更改:
A
:添加一个文件或者目录。- 语法:
dockercp[OPTIONS]CONTAINER:SRC_PATH DEST_PATH|- # 将容器中的文件拷贝到宿主机dockercp[OPTIONS]SRC_PATH|- CONTAINER:DEST_PATH # 将宿主机中的文件拷贝到容器
- 说明:如果为
SRC_PATH
或DEST_PATH
指定了-
,还可以从STDIN
或STDOUT
流式传输tar
压缩包。 - 语法:
dockercommit [OPTIONS]CONTAINER [REPOSITORY[:TAG]]
- 别名:
dockercontainer commit
- 参数:
- -a:提交镜像的作者。
Docker 在处理 OOM 事件分为 3 中情况:
如果容器中的应用耗尽了主机系统分配给容器的内存限额,就会触发 OOM 事件。
- -p:指定端口映射,格式为:主机(宿主)端口:容器端口。当仅使用 busybox 镜像而不指定任何命令时,容器启动后会立即退出,因为它没有默认的前台进程来保持容器运行。
在学习容器的常见命令之前,我们先来看看容器的生命周期吧!
容器的生命周期是容器可能处于的状态:
- created:初建状态。
- 演示:
如下图:我们后台启动一个 nginx 镜像的容器,使用docker stop
命令能够将其停止!
docker restart
- 功能:重启一个或者多个容器。比
docker export
命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。SRC_PATH
或DEST_PATH
可以是文件或目录。通过镜像创建容器,我们可以方便地部署和管理应用程序,并确保每个应用程序都在一致和隔离的环境中运行。 - docker unpause:取消暂停状态,容器进入运行状态。 运行容器化环境时,实际上是在容器内部创建该文件系统的读写副本。