【云原生Docker篇】Docker的容器管理操作(下)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 1、创建容器容器创建:就是将镜像加载到容器的过程。创建容器时如果没有指定容器名称,系统会自动创建一个名称。新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器。

9、查看容器的元数据——docker inspect

格式:docker inspect 容器id/容器名称
 docker ps -a                   #先查看运行时容器的id
 docker inspect 51fd134c7cc3    #查看容器的元数据
 "Gateway": "172.17.0.1",
             "GlobalIPv6Address": "",
             "GlobalIPv6PrefixLen": 0,
             "IPAddress": "172.17.0.2",       #容器的IP
             "IPPrefixLen": 16,
             "IPv6Gateway": "",
             "MacAddress": "02:42:ac:11:00:02",
             "Networks": {
                 "bridge": {                 #使用的是网桥模式
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


10、容器日志

格式:
 docker logs 容器ID/容器名
复制代码


示例:

#后台启动容器,并使用-P随机映射一个端口
 [root@yuji ~]# docker run -id -P nginx:latest
 93007aee7e8f2d74345408191d827d65bcc2e204b53244a3ab9fc3d8f8f6079c
 [root@yuji ~]# docker ps -a       #映射端口为49153
 CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS                      PORTS                                     NAMES
 93007aee7e8f   nginx:latest   "/docker-entrypoint.…"   2 seconds ago    Up 1 second                 0.0.0.0:49153->80/tcp, :::49153->80/tcp   practical_m               clean
 51fd134c7cc3   centos:7       "/bin/bash"              13 minutes ago   Up 13 minutes                                                         yy2
 799d2062f4dc   centos:7       "/bin/bash"              13 minutes ago   Exited (0) 13 minutes ago 
 #浏览器使用宿主机IP和映射端口号,访问容器
 #查看容器日志
 [root@yuji ~]# docker logs 93007aee7e8f
 192.168.41.1 - - [26/Jun/2022:14:26:51 +0000] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" "-"
 2022/06/26 14:26:51 [error] 31#31: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.41.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.41.46:49153", referrer: "http://192.168.41.46:49153/"
 192.168.41.1 - - [26/Jun/2022:14:26:51 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.41.46:49153/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" "-"
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


11、宿主机和容器之间的文件复制

1)将宿主机中的文件复制到容器中

#将宿主机中的文件复制到容器中
 echo 123 > /opt/f1.txt
 docker cp /opt/f1.txt  容器ID:/tmp/
 [root@yuji ~]# echo 123 > /opt/f1.txt
 [root@yuji ~]# docker cp /opt/f1.txt  93007aee7e8f:/tmp/    #将宿主机中的文件复制到容器中
 [root@yuji ~]# docker exec -it 93007aee7e8f /bin/bash       #进入容器查看是否复制成功
 root@93007aee7e8f:/# cd /tmp
 root@93007aee7e8f:/tmp# ls
 f1.txt 
 root@93007aee7e8f:/tmp# cat f1.txt      #复制成功
 123
 root@93007aee7e8f:/tmp#
复制代码


网络异常,图片无法展示
|


2)将容器中的文件复制到宿主机中

docker cp 容器ID:/tmp/f1.txt  ~/abc.txt   #复制并重命名
 #将容器中/tmp目录下的f1.txt文件,复制到宿主机的/root目录下,并重命名为abc.txt
 [root@yuji ~]# docker cp 93007aee7e8f:/tmp/f1.txt  ~/abc.txt  
 [root@yuji ~]# ls
 abc.txt  anaconda-ks.cfg  initial-setup-ks.cfg  mynginx.tar  公共  模板  视频  图片  文档  下载  音乐  桌面
复制代码


网络异常,图片无法展示
|


12、容器的导出与导入(容器的迁移)

用户可以将任何一个 Docker 容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export 命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。

可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。(注意:导入文件后会生成镜像,但不会自动创建容器。)

#导出格式:
 docker export 容器ID/名称 > 导出文件名
 #导入格式:
 cat 导出文件名 | docker import – 镜像名称:标签
复制代码



示例:

#主机A将容器导出为文件,并将导出的文件传给主机B
 [root@yuji ~]# docker export 51fd134c7cc3 > mycentos7
 [root@yuji ~]# scp ~/mycentos7 192.168.41.45:/root/
 #主机B将文件导入生成镜像,并使用导入的镜像创建容器
 [root@node02 ~]# cat mycentos7 | docker import - centos7:test   #导入后会生成镜像,但不会创建容器
 [root@node02 ~]# docker run -id centos7:test                     #使用导入的镜像创建容器
复制代码


主机A将容器导出为文件,并将导出的文件传给主机B:

网络异常,图片无法展示
|


主机B:

网络异常,图片无法展示
|


网络异常,图片无法展示
|


总结:


1、容器管理命令

命令 作用
docker create -i [–name=容器名称] 镜像名 创建容器
docker create -it [–name=容器名称] 镜像名 <命令> 创建容器并导入命令
docker start <容器ID/名称> 启动容器
docker stop <容器ID/名称> 停止容器
docker kill <容器ID/名称> 立即强制停止容器
docker ps 查询运行状态的容器
docker ps -a 查询所有容器
docker rm [-f] <容器ID/名称> 删除容器 (-f 强制删除正在运行的容器)
docker rm $(docker ps -aq) 删除所有容器
docker run [–name] -id 启动容器(一次性执行)
docker exec -it 容器ID/名称 bash 进入容器
docker run -it 容器ID/名称 bash 启动时进入容器
docker cp 宿主机文件 容器ID:容器目录 将宿主机的文件复制到容器中
docker cp 容器ID:容器目录/文件 宿主机目录 将容器中的文件复制到宿主机中
docker logs 容器pid=1的进程日志
docker export 容器ID/名称 > 文件名 将容器导出为文件
cat 文件名 docker import - 镜像名称:标签 将导出的容器文件,导入生成镜像
docker stats 查看docker消耗的资源状态

2、如何镜像优化?

有效减少镜像大小。

3、看当下所有容器占用的I/O有多少,占用内存多少?

使用docker stats命令查看。

4、容器有哪些状态?

Docker容器可以有四种状态:

  • 运行
  • 已暂停
  • 重新启动
  • 已退出

5、overlay2由哪几部分组成 ?

  • LowerDir
  • MergedDir
  • UpperDir
  • WorkDir
相关文章
|
22天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
18天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
161 77
|
26天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
5天前
|
存储 Kubernetes 开发者
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
Docker 是一种开源的应用容器引擎,允许开发者将应用程序及其依赖打包成可移植的镜像,并在任何支持 Docker 的平台上运行。其核心概念包括镜像、容器和仓库。镜像是只读的文件系统,容器是镜像的运行实例,仓库用于存储和分发镜像。Kubernetes(k8s)则是容器集群管理系统,提供自动化部署、扩展和维护等功能,支持服务发现、负载均衡、自动伸缩等特性。两者结合使用,可以实现高效的容器化应用管理和运维。Docker 主要用于单主机上的容器管理,而 Kubernetes 则专注于跨多主机的容器编排与调度。尽管 k8s 逐渐减少了对 Docker 作为容器运行时的支持,但 Doc
43 5
容器化时代的领航者:Docker 和 Kubernetes 云原生时代的黄金搭档
|
2天前
|
存储 Kubernetes Docker
Kubernetes(k8s)和Docker Compose本质区别
理解它们的区别和各自的优势,有助于选择合适的工具来满足特定的项目需求。
41 19
|
10天前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
31 3
实战~如何组织一个多容器项目docker-compose
|
17天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
17天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
20天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
63 3
|
23天前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器化到微服务
本文将带领读者踏上云原生的旅程,深入探讨容器化和微服务架构的概念、优势以及它们如何共同推动现代软件的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务应用,并解释相关的配置和操作。无论你是云原生新手还是希望深化理解,这篇文章都将为你提供有价值的见解和实操指南。

相关产品

  • 容器服务Kubernetes版