
docker
文章平均质量分 82
margu_168
这个作者很懒,什么都没留下…
展开
-
【Docker】docker Overlay2 文件系统原理
overlayFS是被称为联合文件系统的其中一个解决方案。在2014年,发布了第一个版本并且合并到了Linux的内核3.18版本中,此时,在docker被称为是overlay文件驱动。后来在Linux 内核4.0 版本中进行了改进,称为overlay2。(overlay存在诸多性能和不稳定的问题,不推荐使用overlay,直接使用默认的overlay2即可)原创 2024-01-28 15:23:58 · 4164 阅读 · 0 评论 -
关于docker的一些深入了解
在了解容器的存活周期之前,我们得先了解一下进程和init进程。原创 2023-08-02 18:13:37 · 617 阅读 · 0 评论 -
十七、Docker之Cgroup资源配置
Cgroup,全称Control Groups,是一个非常强大的linux内核工具,它不仅可以限制被namespace 隔离起来的资源,还可以为资源设置权重、计算使用量、操控进程启停等等。Docker通过Cgroup 来控制容器使用资源配额,包括CPU、内存、磁盘三大方面,基本覆盖了对常见的资源配额和使用量控制管理。Cgroup是Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如CPU、内存、磁盘lO等等)的机制,被LXC、Docker等很多项目用于实现进程资源控制。原创 2023-06-21 14:03:50 · 2069 阅读 · 0 评论 -
十六、Docker Swarm的介绍和使用
换言之,各种形式的DockerClient(compose,docker-py等)均可以直接与Swarm通信,甚至Docker本身都可以很容易的与Swarm集成,这大大方便了用户将原本基于单节点的系统移植到Swarm上,同时Swarm内置了对Docker网络插件的支持,用户也很容易的部署跨主机的容器集群服务。而目前一般使用的docker版本都是高于这个版本的。Spread策略会选择运行容器最少的那台节点来运行新的容器,使容器比较均衡的分布在集群中的各个节点上运行,一旦一个节点挂掉了只会损失少部分的容器。原创 2023-06-20 11:13:43 · 1554 阅读 · 0 评论 -
十五、Docker-compose的介绍与使用
在Harbor安装章节,大家应该注意到我们使用了docker-compose这个命令,其实在将harbor安装包解压后,运行install.sh,会生成一个docker-compose.yml的文件,其实我们就是根据这个文件来部署harbor的。可以看到,这个yml文件还是很有用的,当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容易出错,此时可以考虑使用docker 单机编排工具 docker-compose,能够很方便的对要启动的容器进行配置管理。服务的日志记录配置。原创 2023-06-19 16:56:21 · 2318 阅读 · 0 评论 -
使用Dockerfile制作redis和sshd服务的镜像
说明:二进制包安装时需要一些基础编译组件,需要提前安装,按需(我安装的可能不够精简),最好指定运行时的配置文件,免得不清楚它默认使用的配置文件。添加的redis.conf 可以在本地yum安装一个redis获得或者通过docker run一个容器然后cp出来修改,主要修改有三处:包括bind、protected-mode和requirepass,其他更优的配置请根据自己需要修改。由于使用的yum源redis更新可能较慢,redis版本比较老,但是也能使用,也可以自行查找比较新的yum源添加。原创 2023-06-16 11:23:27 · 709 阅读 · 0 评论 -
Dockerfile中重要命令详解
Dockerfile中重要命令详解,包括add和copy,cmd和entrypoint的区别原创 2023-06-14 20:34:52 · 3768 阅读 · 0 评论 -
关于Dockerfile的优化
其实我们可以参考官方制作的dockerfile文件,或者以alpine版本的镜像为基础镜像进行定制,但是alpine初期的时候问题有点多,而且缺少很多软件包,不易进行排错,但现在alpine的快速发展,这种现象很少了。首先应该确定构建应用所需的所有依赖,本文的示例 Java 应用很简单,只需要 Maven 和 JDK,所以基础镜像应该选择官方的体积最小的 maven 镜像,该镜像也包含了 JDK。在构建镜像的过程中,如果能够利用缓存,可以减少不必要的重复构建步骤,大大加快制作镜像的速度。原创 2023-06-14 14:54:06 · 1100 阅读 · 0 评论 -
十四、Dockerfile基础介绍
STOPSIGNAL signal默认的 stop-signal 是 SIGTERM,在 docker stop 的时候会给容器内 PID 为 1 的进程发送这个 signal,通过 --stop-signal 可以设置自己需要的 signal,主要目的是为了让容器内的应用程序在接收到 signal 之后可以先处理一些事物,实现容器的平滑退出,如果不做任何处理,容器将在一段时间之后强制退出,会造成业务的强制中断,默认时间是 10s。如果要运行的命令依赖shell特性的话,可以将其替换为类似下面的格式。原创 2023-06-13 21:50:50 · 1758 阅读 · 0 评论 -
如何对Docker容器进行健康检查
Docker Daemon 会自动监控容器中的 PID1 进程,如果 docker run 命令中指明了 restart policy,可以根据重启策略自动重启已结束的容器。熟悉使用过kubernetes的人应该知道,kubernetes支持对pod进行健康检查的功能,这对生产业务来说其实是非常有用处的,能快速发现服务不可用,并进行快速重启恢复。指令的 Dockerfile 构建出来的镜像,在实例化 Docker 容器的时候,就具备了健康状态检查的功能。,可以根据自己的业务自行调整检查命令。原创 2023-06-12 15:37:38 · 2366 阅读 · 0 评论 -
十三、Docker调优
阿里云加速器:(登陆阿里云 -> 找到容器镜像服务 -> 左侧镜像工具 -> 镜像加速器 -> 复制加速器地址进行配置)地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors (应该能跳转到自己的)所以有时候我们需要修改docker的默认目录。4)修改docker的相关配置,打开/usr/lib/systemd/system/docker.service文件,在ExecStart后面添加 --graph=/data/docker。原创 2023-06-11 22:41:42 · 2455 阅读 · 0 评论 -
关于使用docker快速启动一个常用的服务
某些情况下,我们需要快速运行某个服务,如测试环境。其他服务后续陆续更新。原创 2023-06-07 21:38:14 · 222 阅读 · 0 评论 -
修改docker容器端口映射到主机的方法
大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改。万一我们已经对容器里面的内容已经做了一定更改,不能删除重建,怎么办呢?通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。3) 修改这个容器的hostconfig.json文件中的端口(如果config.v2.json里面也记录了端口,也要修改,貌似停止容器后,这个文件里面就没有相应配置了)如需学习更多关于docker或者运维的知识,欢迎前往博客主页。如何修改已经创建好的容器的映射端口。原创 2023-06-07 21:13:36 · 2237 阅读 · 1 评论 -
十二、Docker日志管理
*这个 对我们是会有一些影响的,**当我运行系统时 第一天由于bug产生了 100MB 日志,那么之前的日志就已经有 80MB 日志变成的压缩包,所以我在后续的运行中,只能获取最近的 20MB日志。这类日志我们可以通过 Docker 官方的日志驱动进行收集。(删除 rm -rf /var/log/nginx/access.log ,需要重启才能看到效果,就不能看到日志了,可以手动再创建软链接后重启容器恢复查看ln -sf /dev/stdout /var/log/nginx/access.log)。原创 2023-06-07 14:18:07 · 2175 阅读 · 0 评论 -
十一、Docker API
一般来说,只要一个架构的设计满足REST,就可以称之为RESTful的架构,Docker API的设计也是满足REST风格的。类似GitHub的管理,本节暂不进行讨论。: 诸如docker run等操作最终都是通过调用Docker Remote API向Docker daemon 发起请求的,使用它我们可以远程操作docker容器,更重要的是可以通过程序自动化运维docker进程。:与镜像存储有关的操作可以通过Docker Registry API来完成,可以自由的自动化、程序化的管理你的镜像仓库。原创 2023-06-06 18:52:54 · 1309 阅读 · 0 评论 -
十、Docker网络实际应用
例如,在启动 Docker 服务时,可以同时使用 icc=false --iptables=true 参数来关闭允许相互的网络访问,并让 Docker 可以修改系统中的 iptables 规则。在容器构建阶段,如果需要使用 HTTP/HTTPS 代理,可以通过指定 “docker build” 的环境变量,或者在 Dockerfile 中指定环境变量的方式。在通过 -icc=false 关闭网络访问后,还可以通过 --link=CONTAINER_NAME:ALIAS 选项来访问容器的开放端口。原创 2023-06-05 14:51:15 · 831 阅读 · 0 评论 -
九、Docker网络
Docker网络在Docker的基础知识中算比较重要的了,需要多多实验理解。原创 2023-06-02 15:43:05 · 493 阅读 · 0 评论 -
Docker常用命令总结
一、查看容器#查看docker信息#docker系统的信息#查看运行中的容器docker ps#查看所有容器#显示最后运行的容器#只显示所有容器的id号更多查看容器选项请通过docker ps -h 查看二、容器日志#docker日志查询#查询最近一段时间的日志#滚动查看日志#查看最近n行日志更多查看日志选项请通过docker logs -h 查看三、停止与删除#停止所有正在运行的容器#停止某个运行容器#停止部分容器。原创 2023-06-01 15:31:30 · 725 阅读 · 0 评论 -
八、Docker存储
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UnionFS,可以提供很多有用的特性:数据卷 可以在容器之间共享和重用对 数据卷 的修改会立马生效对 数据卷的更新,不会影响镜像数据卷 默认会一直存在,即使容器被删除注意:数据卷 的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会复制到数据卷中(仅数据卷为空时会复制)。增加新数据卷docker。原创 2023-05-26 10:53:44 · 1011 阅读 · 0 评论 -
七、Docker仓库之nexus搭建(四)
在企业中把内部的一些工具包放入 Nexus 中是比较常见的做法,最新版本 Nexus3.x 全面支持 Docker 的私有镜像。其它的仓库创建方法请各位自行探索,还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。添加用户:菜单 Security->Users->Create local user 在 Roles 选项中选中刚才创建的规则移动到右边的窗口保存。原创 2023-05-25 17:06:08 · 762 阅读 · 0 评论 -
六、Docker仓库之Harbor搭建(三)
1.Harbor介绍Harbor是一个用于存储Docker镜像的企业级镜像服务器,通过添加一些企业必需的功能特性,如安全、标识和管理等,大大扩展其功能。作为一个企业级私有镜像服务器,Harbor提供了更好的性能和安全。提升用户使用镜像构建和运行环境传输镜像的效率。Harbor支持安装在多个镜像 节点的镜像资源复制,镜像全部保存在私有镜像中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。2.Harbor特性。原创 2023-05-25 16:27:50 · 2017 阅读 · 0 评论 -
五、Docker仓库之https的registry搭建(二)
新建 /root/registry/ssl文件夹并将 docker.domain.com.key docker.domain.com.crt root-ca.crt 这三个文件移入,其他文件也可以移进去。由于自行签发的 CA 根证书不被系统信任,所以我们需要将 CA 根证书 ssl/root-ca.crt 移入 /etc/docker/certs.d/docker.margu.com 文件夹中。这样我们就搭建好了一个具有权限认证、TLS 的私有仓库,接下来我们测试其功能是否正常。web界面登录也是正常的。原创 2023-05-25 14:58:39 · 1927 阅读 · 2 评论 -
四、Docker仓库(一)
官方的镜像仓库地址为:https://hub.docker.com/,缺点,位于国外,有时候不能访问,而且速度有时候很慢。在使用kubeadm搭建k8s集群时,我一般都是用的阿里提供的公共镜像仓库registry.aliyuncs.com/google_containers下载相关k8s的基础组件,速度快 (无须注册,直接配置使用)。一种是类似 centos 这样的镜像,被称为基础镜像或根镜像。这样的镜像往往使用单个单词作为名字,这类镜像往往比较大,镜像里面各种命令比较齐全,但不太适合做业务的基础镜像。原创 2023-05-22 21:11:56 · 2482 阅读 · 5 评论 -
三、Docker容器
它将创建一个新的过程。用 docker ps -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量太多一个个删除可能会很麻烦,用下面的命令可以清理掉所有处于终止状态的容器。注意:通过create方式创建的容器是处于created状态的,docker ps不能看到,需要加-a参数,可以通过docker start 命令来启动它。其中,-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。可见,容器中仅运行了指定的 bash 应用。原创 2023-05-19 09:45:51 · 74 阅读 · 0 评论 -
Docker磁盘空间清理
可以看到,Docker镜像占用了3.07GB磁盘,Docker容器占用了621.1MB磁盘,Docker数据卷占用了 747.7MB磁盘。对于旧版的Docker(版本1.13之前),是没有docker system命令的,因此需要进行手动清理。还有时候,当清理了镜像、容器以及数据卷之后,发现磁盘空间并没有减少,这个时间可以尝试重启docker服务。有时候,当使用了上面提到的方法清理磁盘之后,发现磁盘空间并没有清理出来多少,需要进行进一步分析。如果是nginx的容器,并且是日志文件造成磁盘空间过大可以使用。原创 2023-05-18 16:06:19 · 1336 阅读 · 0 评论 -
二、Docker镜像
docker version/ docker info 两者都可以查看到一些信息,可以根据自身需要使用。在初学使用docker命令时,由于还不够熟练,可能对相关命令的使用还不够熟悉,因此,我们要多学会使用帮助信息。解释:name:代表该镜像的名称description:关于该镜像的描述official:是否为官方提供docker pull (默认是从docker hub上下载最新版本)可以看到默认下载的镜像版本为latest最新版本,使用的镜像仓库为官方镜像仓库docker.io。原创 2023-05-18 14:29:56 · 239 阅读 · 0 评论 -
Docker中的悬挂镜像
通过 docker images 命令显示的 镜像,这些镜像是由于新加镜像占用了原有镜像的标签,原有镜像就变成了 镜像,这些 镜像我们称之为无用悬空镜像(dangling images),同时 Docker 并没有自动删除这些镜像的机制。当然其他字段也有可能出现为none的,有这种有字段的镜像我们一般都称之为悬空镜像,它的产生很多时候是在我们构建镜像时使用了相同的镜像名称。某些通过 docker images -a 命令才会显示的 镜像,这些镜像是镜像分层的中间镜像,同时这些镜像不会造成空间损耗。原创 2023-05-18 09:50:00 · 387 阅读 · 0 评论 -
一、Docker入门
Docker 是一个开源的应用容器引擎(面试的时候可以这样回答),基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。原创 2023-05-17 15:25:26 · 104 阅读 · 0 评论 -
centos7(redhat)安装指定版本的docker
某些情况下,我们不需要最新版本的docker,那么如何使用yum源安装老版本的docker版本呢?原创 2023-05-14 22:09:52 · 408 阅读 · 0 评论