3. docker容器内信息获取、命令的执行、容器的导入和导出

一、依附容器

依附操作attach通常用在由docker start或者docker restart启动的交互型容器中。由于docker start启动的交互型容器并没有具体终端可以依附,而容器本身是可以接收用户交互的,这时就需要通过attach命令来将终端依附到容器上。

docker start docker_run:先启动docker_run容器。

启动后docker ps可以看到启动的容器,这是我们发现客户端显示的宿主机([[email protected] ~]#)。

执行docker attach docker_run,终端就已经依附到了容器上,ls显示的就是容器中的目录内容。
  • 注意:后台型容器是无法依附终端的,因为它本身就不接受用户交互输入。

二、查看容器日志

首先创建一个不断输出一些内容的后台型容器,我命名为docker_logs,是一个包含循环输出的自然数容器:

docker run -d --name docker_logs centos /bin/bash -c "for((i=0;1;i++));do echo $i;sleep 1;done;

 docker logs -f docker_logs:此命令默认情况下是输出从容器启动到执行命令时的所有输出,但是之后的输出就不显示了,-f命令会实时显示日志。
 docker logs -f --tail=5 docker_logs:–tail是控制logs输出的行数为最后5行。

三、查看容器进程

docker top:可以查看容器中正在运行的进程。

四、查看容器信息

docker inspect [NAME]/[CONTAINER ID]:用于查看容器的配置信息,包含容器名、环境变量、运行命令、主机配置、网络配置和数据卷配置等: 

  • -f--format格式化标志,可以查看指定部分的信息。

    • docker inspect --format=‘{{.State.Running}}‘ [NAME]/[CONTAINER ID]:查看容器的运行状态。
    • docker inspect --format=‘{{.NetworkSettings.IPAddress}} [NAME]/[CONTAINER ID]‘:查看容器的IP地址。
    • 同时查看多个信息docker inspect --format ‘{{.Name}} {{.State.Running}}‘ [NAME]/[CONTAINER ID]:查看容器名和运行状态。

五、容器内执行命令

在容器启动的时候,通常需要指定其需要执行的程序,然而有时候我们需要在容器运行之后中途启动另一个程序。从Docker1.3开始,我们可以用docker exec命令在容器中运行新的任务,它可以创建两种任务:后台型和交互型。

docker exec -d docker_logs touch /etc/exec_new_file:-d:后台型,并在容器中创建一个文件。 

六、容器的导入和导出

用户不仅可以把容器提交到公共服务器上,还可以将容器导出到本地文件系统中。同样,我们也可以将导出的容器重新导入到Docker运行环境中。导入:`import`,导出:`export`。
        docker export docker_logs > docker_logs_export.tar:把容器的文件系统以tar包的格式导出到标准输出。 

cat docker_logs_export.tar | docker import - [res]:[tag]:把打包的容器导入为一个镜像,res代表镜像。tag代表标记。 

docker import url res:tag:还可以通过一个url链接来导入网络上的容器。

 

原文地址:https://www.cnblogs.com/bmjoker/p/9060885.html

时间: 2024-08-07 19:27:48

3. docker容器内信息获取、命令的执行、容器的导入和导出的相关文章

Docker学习笔记(4-3)Docker容器内部署静态网站

设置容器的端口映射 如何访问容器的80端口<--设置端口映射 -P 为所有端口映射 -p 指定映射端口 docker run -p 80 -i -t ubuntu /bin/bash docker run -p 8080:80 -i -t ubuntu /bin/bash docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash #创建映射80端口的交互

Docker之一----基础介绍和命令详解

一.前言 统称来说,容器是一种工具, 指的 是可以装下其它物品的工具, 以方便人类归纳 放置 物品 .存储和异地运输 具体 来说 比如人类使用的 衣柜 .行李箱.背包等可以成为容器,但今天我们所说的容器是一种IT技术. 容器技术是虚拟化.云计算.大数据之后的一门新兴的并且是炙手可热的新技术, 容器 技术提高了硬件资源利用率. 方便 了 企业 的业务快速横向扩容. 实现了业务宕机自愈功能 , 因此未来数年会 是一个容器愈发流行的 时 代这是 一个对于IT 行业 来说非常有影响和价值的技术,而对于

容器内应用日志收集方案

容器化应用日志收集挑战 应用日志的收集.分析和监控是日常运维工作重要的部分,妥善地处理应用日志收集往往是应用容器化重要的一个课题. Docker处理日志的方法是通过docker engine捕捉每一个容器进程的STDOUT和STDERR,通过为contrainer制定不同log driver 来实现容器日志的收集,缺省json-file log driver是将容器的STDOUT/STDERR 输出保存在磁盘上,然后用户就能使用docker logs <container>来进行查询. 在部署

Docker官方论坛中回复最多的一个帖子“在数据容器内升级数据”

Docker官方论坛中回复最多的一个帖子"在数据容器内升级数据" matlehmann我有一个含数据的容器,它有一个卷(比如在/var/data)中的持久性数据.该容器包含持久性数据对另一个容器的软件.对于该软件的新版本,需要升级所述永久数据(结构或布局改变等).其结果是,我想与在相同的位置已升级的数据的另一数据容器(在/var/data)和仍保留旧数据容器与它的数据不变.这样一来,我可以用旧的数据容器与旧版本的软件,万一出了差错.但是,我怎么能做到这一点?以实现所期望的结果所需要的步

通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇

1.查看容器列表 显示正在运行的容器: [[email protected] HMK]# docker ps 显示所有容器,包括未运行的: [[email protected] HMK]# docker ps -a CONTAINER ID:容器的ID IMAGE:启动容器使用的镜像 CREATED:创建时间 STATUS: 状态 PORTS:端口映射信息 NAMES:容器名称 2.使用tomcat镜像启动一个容器,并挂载宿主机中的/HMK/helloword/webapps/HelloWorl

docker容器内应用检测失败总结

docker容器内应用检测失败故障总结 各位网友,各位同行大家: 今天在云平台中遇到了一个这样一个问题,在云平台上面docker容器中的应用,在监控客户端 中,显示应用检测失败的问题:以下是经常遇到的几个应用检测失败的常见解决办法如下所示: 问题描述:rds产品  docker容器中的应用检测失败:(备注:宿主机运行正常) 解决思路:1.一般情况下如果应用服务检测失败的话,首先查看一下这个应用的进程是否还在 可以使用命令ps -ef | grep +服务名称:查看一下服务的运行状态.查看一下服务

如何在Linux系统上获取命令的帮助信息

在Linux系统中,获取命令帮助信息分为内部命令帮助获取和外部命令帮助两种: 使用help命令用于显示shell内部命令的帮助信息:help命令只能显示shell内部的命令帮助信息. 而对于外部命令的帮助信息只能使用man或者info命令查看. 内部命令帮助获取: 使用内建命令help+命令即可获取 命令格式:# help COMMAND例如使用 help cd 可以获得命令的cd命令的使用格式,详细功用描述,作用法则,常用选项,退出状态码等相关信息. 示例: [[email protected

centos7 docker容器(二)运行和移除容器内应用详解

安装.运行和移除docker中的应用 运行和保存Docker容器 1.运行并保存基于Ubuntu Docker容器的nginx服务器.安装Nginx守护进程到Ubuntu启动容器: # docker run ubuntu bash -c "apt-get -y install nginx" 2.其次,在安装完Nginx包后,发出命令 docker ps -l 得到运行容器的ID或名称.运行以下命令: # docker ps -l 运行以下命令获得更改 # docker commit 5

在linux系统上怎么获取命令的帮助信息及man文档划分

如何在linux系统上获取命令的帮助信息及man文档的章节划分 1.命令 -- help 2.man 命令 后者更加详细 首先帮助中尖括号<>和方括号[]以及省略号...的含义, 在方括号内的表达式("[" 和 "]"之间的字符)是可选的(写命令时要去掉括号). 在尖括号内的表达式("[" 和 "]"之间的字符)是必须替换的表达式(而且要去掉括号). 省略号表示该选项可以单个或多个 以7z的参数为例: 7z [..