linux查看正在运行的容器,说说Docker 容器常用命令

本文介绍了如何使用Docker运行、查看、进入、停止、启动、重启及删除容器的基本操作,并详细解释了常用命令及其参数。

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

1 运行容器

指定某个镜像以容器的形式运行起来。语法为:docker run [OPTIONS] {IMAGE_NAME}。

{IMAGE_NAME} 指的是镜像名称;

[OPTIONS] 指的是命令可选项。

Run的命令可选项非常多,我们在此列举出那些常用的可选项。

参数说明-d在后台运行容器并打印出容器 ID;d 是 detach 的英文首字母。

-p映射端口号到主机。格式形如主机端口:容器端口。

--name指定容器名称。

--restart重启策略,有 no、on-failure[:max-retries]、always 与 unless-stopped 四种1。

-v绑定虚拟机工作目录到容器目录。格式形如工作目录:容器目录。如果工作目录不存在,docker 会自动新建。

这里的工作目录指的是虚拟机中的 CentOS目录。

2 查看容器

查看正在运行的命令为:docker ps。

29a1d52a4aaa49cfcc8959056736e155.png

列表字段具体说明如下:

字段说明CONTAINERID容器 ID

IMAGE镜像名称

COMMAND容器启动时所运行的命令

CREATED容器创建时间,格式为距今多久

STATUS容器运行状态;常见的有:UP 表示运行中;Exited 表示已退出

PORTS需要对外暴露的端口号

NAMES容器名称

加上 -a 参数可以查看所有容器(不只是运行中的容器),完整命令为:docker ps -a。

加上 -f 参数可以加入过滤条件,比如我们想过滤出镜像名称只包含 “config”的镜像。使用命令 docker ps -f "name=config":

036ae6164d75f74c5a2be181f1b1162f.png

3 进入容器

以下两种指令都只能进入处于运行中的容器。

3.1查看运行日志

进入容器查看运行日志的命令格式为:docker attach {CONTAINER_ID}。其中 {CONTAINER_ID} 表示容器 ID。进入容器之后,就可以在控制台看到容器内的输入、输出与错误日志信息。下图是 gitLab 容器的运行日志:

4d799ff158b775e6a98ac9b8fe1a5f55.png

在此如果键入 ctrl+Z,就会停止运行中的容器。

3.2执行 Linux 指令

在容器内执行 Linux 指令使用 docker 的 exec 指令,语法为: docker exec [OPTIONS] {CONTAINER_ID} {COMMAND}。{CONTAINER_ID} 是容器 ID,{COMMAND} 是需要执行的指令。

可能会用到以下两个可选参数 [OPTIONS]:

参数说明-i打开交互模式,即保持 stdin 标准输入处于开启状态;i 即 interactive。

-t分配一个伪终端;t 即 tty。

-w指定容器中的工作路径

比如我们想进入 /var/log/gitlab 目录,然后打印出该目录的文件列表,就可以使用这条命令:docker exec -t -i -w /var/log/gitlab {CONTAINER_ID} ls -l。

命令执行后的输出结果形如:

f4ebb0e32c25fa5e361df297089dd12b.png

4查看容器日志

命令为:docker logs [CONTAINER_ID],其中 [CONTAINER_ID] 表示容器 ID。输出结果形如:

6fdebf8a09a8c9622418d191951f9581.png

5停止容器

停止某个容器,语法为:docker stop {CONTAINER_ID}。

如果想停止所有容器,可以使用以下语法:

docker stop `docker ps -a -q`2

docker ps -a -q 会输出所有正在运行的容器 ID。

-a 表示列出所有正在运行的容器,a 是 all 的缩写;

-q 表示只输出容器 ID,q 是 quiet 的缩写。

6 启动容器

启动已停止的容器,语法为:docker start {CONTAINER_ID}。

7 重启容器

启动运行中的容器,语法为:docker restart {CONTAINER_ID}。

8 删除容器

命令为 docker rm {CONTAINER_ID},其中的 {CONTAINER_ID} 表示的是容器 ID。这条命令只能删除非运行状态的容器。如果需要删除正在运行的容器,可以带上 -f 命令参数,f 是 force 的单词简写形式。

命令执行成功后,控制台会返回被删除的容器 ID。

【1】Restart policies.

【2】黄勇.轻量级微服务架构(上册)[M].北京:电子工业出版社,2016:162.

要在已经在运行Docker容器Linux命令行中执行命令,可以使用以下命令进入容器的交互命令行: docker exec -it <容器名称或容器ID> bash 这将进入容器的bash shell,允许您在容器内执行任何Linux命令。 如果您想以root用户身份进入容器的交互命令行,可以使用以下命令: docker exec -u 0 -it <容器名称或容器ID> bash 这将以root用户身份进入容器的bash shell。请注意,您需要具有足够的权限才能以root用户身份进入容器。 引用\[1\]中提到了如何进入已经在运行Docker容器Linux命令行,而引用\[2\]和\[3\]则提供了在容器运行Docker的方法。 #### 引用[.reference_title] - *1* [【原创】Docker 进入容器内的 Linux 的交互命令行](https://blog.csdn.net/u011700186/article/details/109452670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [如何在 docker 容器内部运行 docker命令](https://blog.csdn.net/ljp1919/article/details/123515090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值