Docker 容器(Container)

这篇博客详细介绍了Docker容器的管理,包括创建、启动、停止、进入、删除、导出与导入等操作,以及如何查看容器的输出、统计信息和进行其他相关命令的使用。重点提到了`docker create`、`docker start`、`docker attach`、`docker exec`、`docker rm`、`docker export`、`docker import`等关键命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker container help 命令查看 Docker 支持的容器操作子命令

创建容器

新建容器

可以使用 docker create 命令新建一个容器,例如:

docker create -it ubuntu:latest

使用 docker [container] create 命令新建的容器处于停止状态,可以使用 docker [container] start 命令来启动它。

启动容器

使用 docker [container] start 命令来启动一个已经创建的容器。 例如,启动刚创建的 ubuntu 容器 :
$ docker start af

新建并启动窑器

所需要的命令主要为 docker [container]run,等价于先执行 docker [container] create 命令,再执行 docker [container] start 命令 。

守护态运行

更多的时候,需要让 Docker 容器在后台以守护态( Daemonized)形式运行。 此时,可以通过添加- d 参数来实现。

docker run -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"

查看容器输出

要获取容器的输出信息,可以通过 docker [container] logs 命令 。

停止容器

介绍 Docker 容器的 pause/unpause 、 stop 和 prune 子命令 。

暂停容器

可以使用 docker [container] pause CONTAINER [CONTAINER ... ]命令来暂停一个运行中的容器。

docker pause 49472392a837 暂停容器

docker unpause 49472392a837 恢复容器到运行状态

终止容器

可以使用 docker [container] stop 来终止一个运行中的容器。 该命令的格式为docker [container] stop [-t I - -time [=10]] [CONTA工NER ... ] 。

docker stop 49472392a837

此时,执行 docker container prune 命令,会自动清除掉所有处于停止状态的容器。此外,还可以通过 docker [container] kill 直接发送 SIGKILL 信号来强行终止容器 。

可以用 docker ps -qa 命令看到所有容器的 ID。

处于终止状态的容器,可以通过 docker [container] start 命令来重新启动:

docker start 49472392a837

docker [container] restart 命令会将一个运行态 的容器先终止,然后再重新启动:

进入容器

在使用- d 参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。这个时候如果需要进入容器进行操作,推荐使用官方的 attach 或 exec 命令。

attach 命令

docker attach 49472392a837

然而使用 attach 命令有时候并不方便 。 当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作了 。

exec 命令

从 Docker 的 1.3.0 版本起, Docker 提供了一个更加方便的工具 exec 命令,可以在运行中容器内直接执行任意命令 。

docker exec -it 381ab8e8aeeb /bin/bash

可以看到会打开一个新的 bash 终端,在不影响容器内其他应用的前提下,用户可以与容器进行交互。通过指定 - it 参数来保持标准输入打开,并且分配一个伪终端。 通过 exec 命令对容器执行操作是最为推荐的方式 。

删除容器

docker rm 381ab8e8aeeb

默认情况下, docker rm 命令只能删除已经处于终止或退出状态的容器,并不能删除还处于运行状态的容器 。如果要直接删除一个运行中的容器,可以添加 - f 参数。 Docker 会先发送 S I GKILL 信号给容器,终止其中的应用,之后强行删除 :

docker rm -f 381ab8e8aeeb

导人和导出容器

导出容器

导出容器是指,导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态 。
可以使用 docker [container ] export 命令,该命令格式为:docker [container) export [-o | - -output [=””) ) CONTAINER
其中,可以通过- 0 选项来指定导出的 tar 文件名,也可以直接通过重定向来实现。

docker export -o test_export_container.rar lc9

之后,可将导出的 tar 文件传输到其他机器上,然后再通过导入命令导入到系统中,实现容器的迁移 。

导入容器

导出的文件又可以使用 docker [container ] import 命令导人变成镜像,该命令格式为 :
docker import [-c | --change[=[]]] [-m | -- message[=MESSAGE]] file | URL | -[REPOSITORY [:TAG]]

用户可以通过 - c, -change=[]选项在导人的同时执行对容器进行修改的 Dockerfile指令  。

docker import test_export_container.rar test/ubuntu:v1.0

使用 docker load 命令来导人一个镜像文件,与 docker [container] import 命令十分类似 。

实际上,既可以使用 docker load 命令来导入镜像存储文件到本地镜像库,也可以使用 docker [container] import 命令来导入一个容器快照到本地镜像库 。

这两者的区别在于 : 容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积更大。 此外,从容器快照文件导人时可以重新指定标签等元数据信息 。

查看容器

查看容器详情

查看容器详情可以使用 docker container inspect [OPTIONS] CONTAINER[CONTAINER . .. ]子命令 。

例如,查看某容器的具体信息,会以 json 格式返回包括容器 Id 、 创建时间、路径、状态、镜像、配置等在内的各项信息:

docker inspect 1c9220d16667

查看容器内进程

查看容器内进程可以使用 docker [container] top [OPTIONS] CONTAINER[CONTAINER . .. ] 子命令 。

这个子命令类似于 Linux 系统中的 top 命令,会打印出容器内的进程信息,包括 PID 、用户、时间、命令等 。 例如,查看某容器内的进程信息,命令如下:

docker top 1c9220d16667

查看统计信息

查看统计信息可以使用 docker [container] stats [OPTIONS] [CONTAINER ... ]子命令,会显示 CPU 、内存、存储、网络等使用情况的统计信息 。

支持选项包括 :
口-a, --all :输出所有容器统计信息,默认仅在运行中;
口 --format string :格式化输出信息;
口 --no-stream :不持续输出,默认会自动更新持续实时结果;
口 --no-trunc :不截断输出信息 。

docker stats 1c9220d16667
docker stats --no-stream 1c9220d16667

其他容器命令

复制文件

命令格式为 docker [container] cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH | - 。 支持的选项包括 :

docker cp /data 1c9220d16667:/tmp/

查看变更

查看容器内文件系统的变更。 命令格式为 docker [container] diff CONTAINER。

docker diff 1c9220d16667

查看端口映射

可以查看容器的端口映射’情况。 命令格式为 docker container port CONTAINER [PRIVATE_PORT[/PROTO ]] 。

docker port 1c9220d16667

更新配置

container update 命令可以更新容器的一些运行时配置,主要是一些资源限制份额。命令格式为 docker [container] update [OPTIONS] CONTAINER [CONTAINER .. . ] 。

小结

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值