Docker 容器管理 启动一个容器: [root@study ~]# docker run -it centos-7-x86_64-minimal /bin/bash 创建一个容器但不启动: [root @study ~]# docker create -it centos ##在此只能使用docker自带镜像 查看容器内核版本: [root@5bfbfae5c6a6 /]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 激活一个已经存在的容器: [root@study ~]# docker start 5bfbfae5c6a6 ##有start seconds ago Up 3 seconds lonely_kare Docker仓库管理 下载registry镜像,registy 查看私有仓库有哪些文件: [root@study ~]# curl http://192.168.8.139:5000/v2/_catalog {"repositories":["busybox"]} docker数据管理
一、docker容器管理 1.1 容器查看-ps命令 显示本地容器列表,但是默认不显示关闭的容器,只显示运行中的容器,除非加上命令选项 -a 用法: docker ps [-a 显示所有容器,默认只显示运行的 "Id": "sha256:0f3e07c0138fbe05abcb7a9cc7d63d9bd4c980c3f61fea5efa32e7c4217ef4da", "RepoTags Comment": "", "Created": "2019-10-01T23:19:57.105928163Z", "Container": "711572e3c0c1ac06d5c13c4e668ec170b8ad8786b5f0949f884a5f7fd350d856 _6 centos #前台执行的容器 [root@zutuanxue ~]# docker run -it --name centos7_5 centos /bin/bash [root@5a1f02b4041c rm [容器名称或者ID] [–force] [root@zutuanxue ~]# docker rm centos7_5 centos7_5 默认删除的容器必须是关闭状态,建议如果希望删除一个运行的容器
Docker容器管理 容器是独立运行的一个或一组应用,以及它们的运行环境。通过Docker容器,开发者可以打包应用与环境,并在任何支持Docker的平台上无缝部署。 my-container的容器,并启动一个交互式的bash会话。 查看运行中的容器 查看当前正在运行的容器: docker ps 停止容器 停止一个运行中的容器: docker stop my-container 启动已停止的容器 启动一个已停止的容器: docker start my-container 删除容器 删除一个容器: docker rm my-container 注意:只有停止状态的容器才能被删除。 容器日志 查看容器的输出日志: docker logs my-container 这个命令会显示容器的标准输出。
ctr container create 命令创建容器后,容器并没有处于运行状态,其只是一个静态的容器。 ~]# ctr container ls CONTAINER IMAGE RUNTIME 容器任务 上面我们通过 container create 命令创建的容器,并没有处于运行状态,只是一个静态的容器 一个容器真正运行起来是由 Task 任务实现的,Task 可以为容器设置网卡,还可以配置工具来对容器进行监控等。我们操作容器实际上是对容器进程操作。 静态容器启动为动态容器 将静态容器启动为动态容器 ,使用 ctr task 命令 Task 相关操作可以通过 ctr task 获取,如下我们通过 Task 来启动容器: [root@localhost PID STATUS nginx 22945 RUNNING 杀死容器进程 ctr 没有 stop 容器的功能,只能暂停或者杀死容器进程,然后在删除容器杀死容器进程可以使用
在上一章节中我们了解到 Bootstrap 需要一个容器元素来包裹网站的内容。 我们可以使用以下两个容器类: .container 类用于固定宽度并支持响应式布局的容器。 100% 宽度 .container-fluid 类用于创建一个全屏幕尺寸的容器,容器始终跨越整个屏幕宽度(width 始终为 100%): Bootstrap5 .container-fluid 实例 比如 .pt-5 就是用于填充顶部内边距: Bootstrap5 实例
容器的边框和颜色 Bootstrap 也提供了一些边框(border )和颜色(bg-dark、bg-primary等)类用于设置容器的样式: Bootstrap5 实例 <div class="container p-<em>5</em> my-<em>5</em> bg-primary text-white注意:容器内的进程必须处于前台运行状态,否则容器就会直接退出,自己部署一个容器运行,命令不得后台运行,前台运行即可。如果容器内,什么事也没做,容器也会挂掉。容器内,必须有一个进程在前台运行。 -d centos:7.8.2003返回容器ID3、丰富docker运行的参数4、查看容器日志docker ps docker logs -f 容器id 刷新日志docker logs 容器id | tail -55、进入正在运行的容器空间内exec 指令用于进入容器内docker exec -it 容器id bash6、查看容器的详细信息,用于高级的调试docker container inspect 容器id7、容器的端口映射图片docker pull nginxdocker run -it nginx sh后台运行nginx容器,且起名字,且端口号映射宿主机的85端口,访问到容器内的80端口docker :7.8.2003 ,在容器内安装vim提交命令docker commit 容器id 新的镜像名
1、Containerd镜像管理1.1 Containerd容器镜像管理命令docker使用docker images命令管理镜像单机containerd使用ctr images命令管理镜像,containerd 本身的CLIk8s中containerd使用crictl images命令管理镜像,Kubernetes社区的专用CLI工具获取命令帮助# ctr --helpNAME: ctr - 把已下载的容器镜像挂载至当前文件系统# ctr images mount docker.io/library/nginx:alpine /mntsha256:af2fcce448e2e4451a5f4796a9bf9cb5c9b5f88e0d6d10029cada42fb9d268ac da9c94bec1da829ebd52431a84502ec471c8e548ffb2cedbf36260fd9bd1d4d3 complete (7/7) 9.7 MiB/9.7 MiB true2、Containerd容器管理 nginx:latest application/vnd.docker.distribution.manifest.list.v2+json sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
对STL常见容器,vector,map等的内存管理进行分析,以及内存管理方法,和操作系统内存管理进行了简要的讲解。 对STL常见容器,vector,map等的内存管理进行分析,以及内存管理方法,和操作系统内存管理进行了简要的讲解。 rBAoL1-Q20mAN44lAAO6uDAqdEA653.png STL容器内存管理.ppt
[root@wuyaShare ~]# docker ps -a | grep hello-world b87b70fd99b5 hello-world "/hello" 11 seconds b87b70fd99b5 #备注,执行后,就会显示该容器的详细的信息 容器中log查看 在docker容器中,查看容器的日志信息的命令为: docker logs -f 容器ID 下面详细的演示下这部分的使用 ,那么执行的命令为: docker logs 51e2db607d0c | tail -5 容器提交 在一个容器里面,比如centos里面安装了vim的编辑器,如果没进行提交,那么下次进入还需要安装 dc42dd7323a3b5de103f679378cb3f3288ed7e623c175acbd6420a68e7fb3bd4 #查看容器记录ID的信息 [root@wuyaShare ~]# docker start dc42dd7323a3 dc42dd7323a3 [root@wuyaShare ~]# docker port dc42dd7323a3 80/tcp -> 0.0.0.0:80 在容器的管理中
你是否还在大量控制台窗口中监控容器,还是对使用终端命令充满热情?而使用Docker的图形用户界面(GUI)工具,则可以更简单的对容器进行管理,并提高效率。而且它们都是免费的。 可以管理注册表,网络、卷、镜像和容器。还可以保存配置(可以在实时演示中找到alertmanager和Prometheus的示例),并配置Docker Swarm和堆栈。 Portainer可以检查容器是否健康。 除了需要使用容器的基本操作,例如运行,停止,恢复,终止,删除等之外,还可以检查容器,查看日志,可视化基本统计信息,附加并打开某些容器的控制台。 它还可以帮助管理容器和服务,包括远程和本地的容器,并对其进行监控,比如日志监控,搜索日志,分组,运行工具以及获取容器信息。还有其他工具可用于对容器资源进行通用,多个和单个的监控。 5.Docui Docui也是一款UI终端,支持Mac、Linux操作系统。要求GO 1.11.4以上版本,Docker引擎在18.06.1以上,以及Git。
前文回顾 1.大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介[1]2.大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s[2]3.大规模 IoT 边缘容器集群管理的几种架构 -2-HashiCorp 解决方案 Nomad[3]4.大规模 IoT 边缘容器集群管理的几种架构-3-Portainer[4]5.大规模 IoT 边缘容器集群管理的几种架构-4-Kubeedge[5] 信创需求 本文介绍了边缘容器/边缘计算的基本概念及发展趋势,以及在边缘大规模分散管理的情况下,特别需要容器/Kubernetes/容器编排统一管理分发的能力。 然后引出本文的重心:IoT 边缘容器集群管理的几种架构。 希望本文对各位在 IoT 边缘容器管理架构设计时有所帮助。
指定数据文件名 appendfilename "appendonly6379.aof" 指定append文件名 Note: 为什么普通情况下使用redis都是开启后台服务模式,而这里要使用前台模式呢,那是因为,容器化后 ,必须终结于一个前台进程,否则容器就直接退出了,这涉及容器交互模式运行和后台运行的一些特性 ---- 挂载本地卷到容器 [root@h104 x]# pwd /tmp/x [root@h104 x]# redis-server /data/redis6379.conf 进行一下解析 Option Comment docker run 调用 docker 命令的 run 子命令 --name myredis 给这个容器取名为 myredis -d 后台模式运行 -v /tmp/x:/data 将本地的 /tmp/x 目录挂载到容器中的 /data 目录 redis 使用redis镜像 redis-server /data/ redis6379.conf 使用指定的配置初始化并启动redis服务 ---- 查看日志 因为本地目录挂载到了容器中,那么日志根据映射就直接记录到了本地 [root@h104 x]# pwd /tmp
二.IOC 容器 (1)IOC 底层原理 (2)IOC 接口(BeanFactory) (3)IOC 操作 Bean 管理(基于 xml) (4)IOC 操作 Bean 管理(基于注解) 1.基本概念 (底层原理) 1.1 什么是 IOC (1)控制反转,把对象的创建和对象之间的调用过程,交给 Spring 进行管理 (2)使用 IOC 的目的:为了耦合度降低 (3)做入门案例就是 IOC 的实现 1.2IOC 底层原理 (1)xml 解析、工厂模式、反射 1.2.1 画图讲解 IOC 底层原理 2.IOC 接口 IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂 Spring 提供 IOC 容器实现两种方式:(两个接口) (1)BeanFactory:IOC 容器基本实现,是 Spring 内部的接口,不提供开发人员进行使用 *加载配置文件的时候不回去创建对象,在获取对象(使用)才去创建对象 什么是 Bean 管理 (0)Bean 管理指的是两个操作(1)Spring 创建对象(2)Spirng.注入属性 Bean 管理操作有两种方式 (1)基于 XML 配置文件方式实现(2)基于注解方式实现
h104 blog2]# docker images | grep rails test-rails-app-blog latest b5b7ed8d740e afdddae9b2bf 47 hours ago 833.7 MB [root@h104 blog2]# 现在我们可以使用生成的 test-rails-app-blog 来创建容器 ---- 创建 Rails 容器 [root@h104 ~]# docker run --name blog-rails-app -p 8080:3000 -d test-rails-app-blog
6 7 8 9 10 11
镜像名为: fei/centos:ssh_ansible
3、启动容器(需要开启特权模式,否则会报错:Failed to get 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4、配置ansible主机清单,并建立互信关系 在这之前需要先进入到容器中,我们通过ssh ` ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.17.0.2 5、测试 1 ansible nodes -m ping 注意: 查看容器IP的方法: 1 docker inspect --format '{{ .NetworkSettings.IPAddress }}' a7431673ece4 停止容器: 1 docker stop container_id 删除容器: 这里先说下如何构建一个带有ssh的镜像,然后通过这个镜像,我们起动了几个容器,通过这几个容器我们来练习ansible的使用方法,非常的简单和方便,一台虚机就可以完成ansible的练习,后面还会继续学习1ywa3bahaf6pjyxmk9qr3txumj3dkvf3oszfbwbkmllb3qvtww-14dph81ocgvxqwt4mgdvsvfc0 192.168.0.10:2377 #使用master主机生成的token master管理 service create --replicas 1 --name hello busybox sleep 1000 #创建hello服务 一个副本 docker service scale hello=5 #扩容成5个hello副本 docker service scale hello=3 #缩减到3个hello副本 docker service update --limit-cpu=0.5 hello nginx/conf \ --name nginx-test \ bind mount (单点) 挂载宿主机已有的数据 bind mount (多点) NFS先挂载到所有物理机 配置文件管理
通用易用的容器云管理平台: 区块链部署、项目管理、集群管理、持续集成流水线、容器编排调度、服务发现、负载均衡...
return container, nil } 上面代码逻辑大致如下: 创建文件系统根目录 挂载磁盘映射 根据指定的runc工具路径初始化runc对象(默认是/run/containerd/runc) 初始化容器管理处理器 获取容器的pid并绑定到容器处理器中 启动容器 通过上面初始化容器我们知道,容器的所有操作管理都是在容器对象里面处理的,比如启动容器: // Start a container process func https://colstuwjx.github.io/2021/08/%E6%BA%90%E7%A0%81%E8%A7%A3%E8%AF%BB%E4%BB%8E%E4%BB%A3%E7%A0%81%E5% AE%9E%E7%8E%B0%E5%B1%82%E9%9D%A2%E6%80%9D%E8%80%83-kubernetes-%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5% BC%83%E7%94%A8%E5%AF%B9-docker-%E7%9A%84%E6%94%AF%E6%8C%81/
2.3 进入容器 1 root@docker:~# docker exec -it 5e7ad2db2304 /bin/bash 2 root@docker:~# docker exec -it 4 root@docker:~# docker stop 95b731acd6b5 #停止docker 5 root@docker:~# docker kill 25cbcff93d56 #停止 docker 8 root@docker:~# docker rm 95b731acd6b5 #删除该docker 注意:删除容器时,容器必须是停止状态,查看容器详细信息可输入前部分ID,如docker 1 root@docker:~# docker pause 5e7ad2db2304 #暂停容器 2 root@docker:~# docker unpause 5e7ad2db2304 #恢复容器 三 容器生命周期管理 3.1 容器生命周期 ?
.通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用. 管理Docker镜像 镜像是Docker三大核心概念中最为重要的,自Docker诞生之日起,镜像就是相关社区最为热门的关键词,Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker 下面例子将围绕镜像这一核心概念的具体操作,包括如何使用pull命令从Docker Hub仓库中下载镜像到本地,如何查看本地已有的镜像信息和管理镜像标签,如何在远端仓库使用search命令进行搜索和过滤, docker save 镜像ID > /root/*.tar #镜像的导出 [root@localhost ~]# docker load < /root/*.tar #镜像的导入 管理 23c881ac33c5 新建并启动: 除了创建容器后通过start命令来启动,也可以直接新建并启动容器.所需要的命令主要为docker run,等价于先执行docker create命令,再执行docker