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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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
相关文章
|
3天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
17 5
|
3天前
|
运维 Docker 微服务
掌握 Docker Compose:简化你的多容器应用部署
在微服务架构和容器化技术普及的今天,管理多容器部署变得颇具挑战。Docker Compose 通过一个 YAML 文件定义和运行多容器应用,简化了部署和运维。本文介绍其基本概念、使用方法及优势,包括服务、项目、卷和网络等核心概念,并提供从安装到管理服务的详细步骤,助你轻松掌握 Docker Compose,提高开发效率和应用运维质量。
|
4天前
|
Cloud Native 持续交付 Docker
探索Docker容器化技术及其在软件开发中的应用
探索Docker容器化技术及其在软件开发中的应用
16 7
|
4天前
|
存储 虚拟化 开发者
深入理解Docker容器化技术
深入理解Docker容器化技术
25 6
|
1天前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
|
6天前
|
持续交付 开发者 Docker
掌握 Docker:容器化技术在现代开发中的应用
Docker 是一个开源容器化平台,使开发者能够将应用程序及其依赖项封装在轻量级容器中,确保跨平台的一致性。本文介绍了 Docker 的基本概念、核心组件及优势,并展示了其在快速部署、一致性、可移植性和微服务架构中的应用。通过示例说明了 Docker 在本地开发环境搭建、服务依赖管理和 CI/CD 流程中的作用,以及多阶段构建、资源限制和网络模式等高级特性。掌握 Docker 可大幅提升开发效率和应用管理能力。
|
3天前
|
Cloud Native 持续交付 Docker
探索容器化技术Docker的奥秘
探索容器化技术Docker的奥秘
16 3
|
4天前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
12 3
|
4天前
|
Kubernetes Docker 微服务
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
|
12天前
|
运维 安全 开发者
Docker容器技术
Docker容器技术
29 6

相关产品

  • 容器服务Kubernetes版