Docker 容器高级操作[Docker 系列-3]

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 上篇文章向读者介绍了一个 Nginx 的例子,对于 Nginx 这样一个容器而言,当它启动成功后,我们不可避免的需要对 Nginx 进行的配置进行修改,那么这个修改要如何完成呢?且看下文。本文是本系列第三篇,阅读前面文章有助于更好理解本文:

依附容器

docker attach

依附容器这个主要是针对交互型容器而言的,该命令有一定的局限性,可以作为了解即可,真正工作中使用较少。

要是用 docker attach 命令,首先要确保容器已经启动,然后使用该命令才能进入到容器中。具体操作步骤如下:

  • 创建一个容器,然后启动:

41.jpg

  • 不要关闭当前窗口,再打开一个新的终端,执行 docker attach ubuntu :

42.jpg此时就能进入到容器的命令行进行操作了。

如果容器已经关闭或者容器是一个后台容器,则该命令就无用武之地了。

由上面的操作大家可以看到,这个命令的局限性很大,使用场景也不多,因此大家作为一个了解即可。

容器内执行命令

如果容器在后台启动,则可以使用 dockerexec 在容器内执行命令。不同于 docker attach ,使用 dockerexec 即使用户从终端退出,容器也不会停止运行,而使用 docker attach 时,如果用户从终端退出,则容器会停止运行。如下图:

43.jpg

基于这样的特性, 我们以后在操作容器内部时,基本上都是通过 dockerexec 命令来实现。

查看容器信息

容器创建成功后,用户可以通过 docker inspect 命令查看容器的详细信息,这些详细信息包括容器的 id 、容器名、环境变量、运行命令、主机配置、网络配置以及数据卷配置等信息。执行部分结果如下图:

44.jpg

使用 format 参数可以只查看用户关心的数据,例如:

  • 查看容器运行状态

45.jpg

  • 查看容器ip地址

46.jpg

  • 查看容器名、容器id

47.jpg

  • 查看容器主机信息

48.jpg

容器的详细信息,在我们后边配置容器共享目录、容器网络时候非常有用,这个我们到后面再来详细介绍。

查看容器进程

使用 docker top 命令可以查看容器中正在运行的进程,首先确保容器已经启动,然后执行 docker top 命令,如下:

49.jpg

查看容器日志

交互型容器查看日志很方便,因为日志就直接在控制台打印出来了,但是对于后台型容器,如果要查看日志,则可以使用docker提供的 docker logs 命令来查看,如下:

50.jpg

如下图,首先启动一个不停打日志的容器,然后利用 docker logs 命令查看日志,但是默认情况下只能查看到历史日志,无法查看实时日志,使用 -f 参数后,就可以查看实时日志了。

使用 --tail 参数可以精确控制日志的输出行数, -t 参数则可以显示日志的输出时间。

51.jpg

该命令在执行的过程中,首先输出最近的三行日志,同时由于添加了 -f 参数,因此,还会有其他日志持续输出。同时,因为添加了 -t 参数,时间随同日志一起打印出来了。

docker 的一大优势就是可移植性,容器因此 docker 容器可以随意的进行导入导出操作。

容器导出

既然是容器,我们当然希望 Docker 也能够像 VMWare 那样方便的在不同系统之间拷贝,不过 Docker 并不像 VMWare 导出容器那样方便(事实上,VMWare 中不存在容器导出操作,直接拷贝安装目录即可),在 Docker 中,使用 export 命令可以导出容器,具体操作如下:

  • 创建一个容器,进行基本的配置操作

本案例中我首先创建一个 nginx 容器,然后启动,启动成功后,将本地一个 index.html 文件上传到容器中,修改 nginx 首页的显示内容。具体操作步骤如下:


  1. docker run -itd --name nginx -p 80:80 nginx
  2. vi ./blog/docker/index.html
  3. docker cp ./blog/docker/index.html nginx:/usr/share/nginx/html/

首先运行一个名为 nginx 的容器,然后在宿主机中编辑一个 index.html 文件,编辑完成后,将该文件上传到容器中。然后在浏览器中输入 http://localhost:80 可以看到如下结果:

52.jpg

容器已经修改成功了。

接下来通过 export 命令将容器导出,如下:

53.jpg

该命令将容器导入到 docker 目录下。导出成功之后,我们就可以随意传播这个导出文件了,可以发送给其他小伙伴去使用了,相对于 VMWare 中庞大的文件,这个导出文件非常小。一般可能只有几百兆,当然也看具体情况。

容器导入

其他小伙伴拿到这个文件,通过执行如下命令可以导入容器(如果自己重新导入,需要记得将 docker 中和 nginx 相关的容器和镜像删除):

54.jpg

容器导入成功后,就可以使用 docker run 命令运行了。运行成功之后,我们发现自己定制的 index.html 页面依然存在,说明这是我们自己的那个容器。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
27天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
189 77
|
8天前
|
搜索推荐 安全 数据安全/隐私保护
7 个最能提高生产力的 Docker 容器
7 个最能提高生产力的 Docker 容器
75 35
|
1月前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
7天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
13天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
78 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
19天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
44 3
实战~如何组织一个多容器项目docker-compose
|
13天前
|
Unix Linux Docker
CentOS停更沉寂,RHEL巨变限制源代:Docker容器化技术的兴起助力操作系统新格局
操作系统是计算机系统的核心软件,管理和控制硬件与软件资源,为用户和应用程序提供高效、安全的运行环境。Linux作为开源、跨平台的操作系统,具有高度可定制性、稳定性和安全性,广泛应用于服务器、云计算、物联网等领域。其发展得益于庞大的社区支持,多种发行版如Ubuntu、Debian、Fedora等满足不同需求。
40 4
|
29天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
91 3
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
110 7
|
1月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
42 5