Docker 容器管理 启动一个容器: [root@study ~]# docker run -it centos-7-x86_64-minimal /bin/bash 创建一个容器但不启动: [root seconds lonely_kare Docker仓库管理 下载registry镜像,registy为docker官方提供的一个镜像,我们可以用它来创建本地的 查看私有仓库有哪些文件: [root@study ~]# curl http://192.168.8.139:5000/v2/_catalog {"repositories":["busybox"]} docker数据管理 启动容器并挂载目录: [root@study ~]# docker run -itd -v /data/docker/:/data1/ centos bash f73da2b9f4bbf010310f17c9d702b33225dc8caaf213ac483c52bef6f6d3a14e docker exec -it f73 bash [root@f73da2b9f4bb /]# ls data1/ 1.txt 2.txt 3.txt 所谓挂载数据卷,即多个docker容器使用同一个母机中的挂载目录
一、docker容器管理 1.1 容器查看-ps命令 显示本地容器列表,但是默认不显示关闭的容器,只显示运行中的容器,除非加上命令选项 -a 用法: docker ps [-a 显示所有容器,默认只显示运行的 centos "/bin/bash" 3 seconds ago Exited(0) 3 seconds ago centos7_6 1.2、容器详细信息-inspect命令 显示容器的详细信息 :0f3e07c0138fbe05abcb7a9cc7d63d9bd4c980c3f61fea5efa32e7c4217ef4da", "RepoTags": [ bash\"]" ], "ArgsEscaped": true, "Image": "sha256:c0bda62fdbad65a3c6a1843d293a3a47d8233115cc6d384e3cb07c53580a2b43 bin/bash" ], "ArgsEscaped": true, "Image": "sha256:c0bda62fdbad65a3c6a1843d293a3a47d8233115cc6d384e3cb07c53580a2b43
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 命令创建容器后,容器并没有处于运行状态,其只是一个静态的容器。 一个容器真正运行起来是由 Task 任务实现的,Task 可以为容器设置网卡,还可以配置工具来对容器进行监控等。我们操作容器实际上是对容器进程操作。 静态容器启动为动态容器 将静态容器启动为动态容器 ,使用 ctr task 命令 Task 相关操作可以通过 ctr task 获取,如下我们通过 Task 来启动容器: [root@localhost S 13:01 0:00 nginx: worker process root 23266 0.0 0.2 112836 2332 pts/3 S+ 13:15 PID STATUS nginx 22945 RUNNING 杀死容器进程 ctr 没有 stop 容器的功能,只能暂停或者杀死容器进程,然后在删除容器杀死容器进程可以使用
注意:容器内的进程必须处于前台运行状态,否则容器就会直接退出,自己部署一个容器运行,命令不得后台运行,前台运行即可。如果容器内,什么事也没做,容器也会挂掉。容器内,必须有一个进程在前台运行。 -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 - vnd.docker.distribution.manifest.list.v2+jsonsha256:da9c94bec1da829ebd52431a84502ec471c8e548ffb2cedbf36260fd9bd1d4d3SIZE /library/nginx:alpine (sha256:da9c94bec1da829ebd52431a84502ec471c8e548ffb2cedbf36260fd9bd1d4d3)...done1.8 complete (7/7) 9.7 MiB/9.7 MiB true2、Containerd容器管理2.1 获取命令帮助2.1.1 获取ctr命令帮助[root@localhost ~]# ctr -
dc42dd7323a3b5de103f679378cb3f3288ed7e623c175acbd6420a68e7fb3bd4 #查看容器记录ID的信息 [root@wuyaShare ~]# docker #查看容器的端口 [root@wuyaShare ~]# docker port dc42dd7323a3 80/tcp -> 0.0.0.0:80 #停止容器 [root@wuyaShare ~]# docker stop dc42dd7323a3 dc42dd7323a3 [root@wuyaShare ~]# docker port dc42dd7323a3 #启动容器,启动容器后,就可以查看容器的 ID的信息了 [root@wuyaShare ~]# docker start dc42dd7323a3 dc42dd7323a3 [root@wuyaShare ~]# docker port dc42dd7323a3 80/tcp -> 0.0.0.0:80 在容器的管理中,也是可以通过exec的命令方式来查看容器交互式的命令信息,涉及到的命令信息以及交互具体如下: #运行容器信息 [root@wuyaShare
对STL常见容器,vector,map等的内存管理进行分析,以及内存管理方法,和操作系统内存管理进行了简要的讲解。 对STL常见容器,vector,map等的内存管理进行分析,以及内存管理方法,和操作系统内存管理进行了简要的讲解。 rBAoL1-Q20mAN44lAAO6uDAqdEA653.png STL容器内存管理.ppt
前文回顾 1.大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介[1]2.大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s[2]3.大规模 IoT 边缘容器集群管理的几种架构 -2-HashiCorp 解决方案 Nomad[3]4.大规模 IoT 边缘容器集群管理的几种架构-3-Portainer[4] ️Reference: IoT 边缘计算系列文章[5] Portainer ,让您的团队保持在正确的轨道上•Portainer 为您提供混合和多云、多集群、多设备、容器管理 有专门的针对边缘容器的解决方案和功能 -- 在边缘释放容器的力量,以简单安全的方式在边缘管理 Docker Portainer 是一个工具集,允许从 Portainer 的单个自托管实例集中管理数千个远程容器主机。 Portainer 还适用于运维工程师,以成功管理行业中基于容器的应用程序部署。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 这里贴一下截图,可能粘贴赋值的会有些问题,以作参考 2、开始构建镜像
镜像名为: fei/centos:ssh_ansible
3、启动容器(需要开启特权模式,否则会报错:Failed … … docker run -itd -p 20020:22 –privileged=true –name ansible_server fei/centos:ssh_ansible 1 2 3 删除容器: 这里先说下如何构建一个带有ssh的镜像,然后通过这个镜像,我们起动了几个容器,通过这几个容器我们来练习ansible的使用方法,非常的简单和方便,一台虚机就可以完成ansible的练习,master docker swarm init --advertise-addr 192.168.0.10 node docker swarm join --token SWMTKN-1-1ywa3bahaf6pjyxmk9qr3txumj3dkvf3oszfbwbkmllb3qvtww -14dph81ocgvxqwt4mgdvsvfc0 192.168.0.10:2377 #使用master主机生成的token master管理swarm 常用命令 docker service rm 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 #限制资源 docker service update --image hello nginx/conf \ --name nginx-test \ bind mount (单点) 挂载宿主机已有的数据 bind mount (多点) NFS先挂载到所有物理机 配置文件管理
通用易用的容器云管理平台: 区块链部署、项目管理、集群管理、持续集成流水线、容器编排调度、服务发现、负载均衡...
return container, nil } 上面代码逻辑大致如下: 创建文件系统根目录 挂载磁盘映射 根据指定的runc工具路径初始化runc对象(默认是/run/containerd/runc) 初始化容器管理处理器 (关联 runc对象,后面对容器的所有操作都是在这个处理器中完成) 通过runc命令在宿主机上创建容器 初始化容器对象(持有容器处理器对象) 创建容器 具体的创建容器方法如下: // Create the 获取容器的pid并绑定到容器处理器中 启动容器 通过上面初始化容器我们知道,容器的所有操作管理都是在容器对象里面处理的,比如启动容器: // Start a container process func www.qikqiak.com/post/containerd-usage/ 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-
80:80 httpd #从docker hub下载httpd镜像,启动httpd容器,并将容器的80端口映射到宿主机的80端口 3 root@docker:~# docker run logs 634cf027ad85 #查看容器内的标准输出 2 root@docker:~# docker stop 634cf027ad85 #停止容器 3 root@docker:~# docker 3 root@docker:~# docker ps ? 三 容器生命周期管理 3.1 容器生命周期 ? cpu 1 和 cpu 3 上执行。
.通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用. 管理Docker镜像 镜像是Docker三大核心概念中最为重要的,自Docker诞生之日起,镜像就是相关社区最为热门的关键词,Docker运行容器前需要本地存在对应的镜像,如果镜像没保存在本地,Docker 下面例子将围绕镜像这一核心概念的具体操作,包括如何使用pull命令从Docker Hub仓库中下载镜像到本地,如何查看本地已有的镜像信息和管理镜像标签,如何在远端仓库使用search命令进行搜索和过滤, docker save 镜像ID > /root/*.tar #镜像的导出 [root@localhost ~]# docker load < /root/*.tar #镜像的导入 管理 下面的例子将具体介绍围绕容器的重要操作,包括创建一个容器、启动容器、终止一个容器、进入容器内执行操作、删除容器和通过导入导出容器来实现容器迁移等.
–log-opt max-file=3 compress 对应切割日志文件是否启用压缩。默认情况下启用。 –log-opt max-file=3 labels 适用于启动Docker守护程序时。此守护程序接受的以逗号分隔的与日志记录相关的标签列表。 36510dd653ae7dcac1d017174b1c38b3f9a226f9c4e329d0ff656cfe041939ff /var/lib/docker/overlay2/c10ec54bab8f3fccd2c5f1a305df6f3b1e53068776363ab0c104d253216b799d /merged # 查看挂载点的目录结构 [root@fy-local-2 /]# ls -l /var/lib/docker/overlay2/c10ec54bab8f3fccd2c5f1a305df6f3b1e53068776363ab0c104d253216b799d root root 41 May 6 08:00 var # 查看日志 [root@fy-local-2 /]# ls -l /var/lib/docker/overlay2/c10ec54bab8f3fccd2c5f1a305df6f3b1e53068776363ab0c104d253216b799d
随着Docker容器广泛应用,,大规模运行的容器集群来说,日志不能集中管理是一件很痛苦的事情。不能合理的收集,管理检索应用日志,在应用发生了故障的时候将无法很好的追溯问题发生的原因。 本文主要介绍Docker配置Fluentd进行日志管理 1、快速启动Fluentd # docker run -d -p 24224:24224 -p 24224:24224/udp -v /data: 537.36\" \"-\"", "container_id": "0cd8d7d68fe233238679b31327d53ad0fffe5b419f1847ad9140db063dded7f3" } 3、Docker全局日志配置 # cat /etc/docker/daemon.json { "registry-mirrors": ["https://zcg96r7h.mirror.aliyuncs.com https://docs.fluentd.org/v1.0/articles/quickstart#step-1:-installing-fluentd 3、Docker配置Fluentd:https:
Kubernetes是Google开源的容器集群管理系统。 它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。 slave(称作minion)运行两个组件: kubelet:负责管控docker容器,如启动/停止、监控运行状态等。它会定期从etcd获取分配到本机的pod,并根据pod信息启动或停止相应的容器。 /scheduler -master 127.0.0.1:8080 \ -v=3 \ -logtostderr=false \ -log_dir=. /controller-manager -master 127.0.0.1:8080 \ -v=3 \ -logtostderr=false \ -log_dir=./log kubelet .
一、运行容器 1、基于镜像新建一个容器并启动 docker run -it --rm -d -p 8888:8080 tomcat:8.0 -i:交互式操作 -t:终端 -rm:容器退出后随之将其删除 二、操作容器 1、查看容器列表 #列出运行中的容器 docker ps docker container ls #列出所有容器(包含终止状态) docker ps -a docker container 3、进入容器 docker exec -it [CONTAINER ID] bash ? 进入容器后输入 exit 或者 [crtl + c] 即可退出容器。 三、终止容器 1、直接删除容器 #删除终止状态的容器 docker rm [CONTAINER ID] #删除所有处于终止状态的容器 docker container prune #删除运行中的容器 四、容器的导出和导入 1、容器的导出 #这样将导出容器快照到本地文件 docker export [CONTAINER ID] > [tar file] ?
一个开源的企业级容器管理平台。通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台。 Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。 容器编排与调度 很多用户都会选择使用容器编排调度框架来运行容器化应用。 并且可以使用原生的Swarm或者Kubernetes工具管理应用。除了Swarm,Kubernetes和Mesos之外,Rancher还支持自己的Cattle容器编排调度引擎。 应用商店 Rancher的用户可以在应用商店里一键部署由多个容器组成的应用。用户可以管理这个部署的应用,并且可以在这个应用有新的可用版本时进行自动化的升级。