Docker:一个应用容器引擎
文章平均质量分 87
Securely build and share any application, anywhere
琦彦
Find out who you are,and be that person.
展开
-
Harbor镜像层膨胀,占用存储过大
名,默认就是 latest,registry 会从 HTTP 请求中解析到这个 tag 名,然后根据 tag 名目录下的 link 文件找到该镜像的 manifest 的位置返回给客户端,客户端接着去请求这个 manifest 文件,客户端根据这个 manifest 文件来 pull 相应的镜像 layer。如果指的容器存储路径对应的宿主机路径,直接在宿主机上执行也是可以,从上文我们知道registry容器存储目录/storage,对应于宿主机的/data/registry。将本机的路径挂载到容器内。原创 2022-10-28 20:01:01 · 907 阅读 · 0 评论 -
Harbor断电重启postgres报错 could not locate a valid checkpoint record
Harborv2.2.2内置的数据库是postgres9.6.21,服务器突然断电,重启harbor后报错,信息如下。原创 2022-10-28 19:59:04 · 840 阅读 · 0 评论 -
Harbor新建仓库目标提示 the registry is unhealthy
两个harbor需要通过镜像复制策略来同步镜像,在仓库管理添加的harbor状态是unhealthy。原创 2022-10-28 19:57:50 · 1756 阅读 · 0 评论 -
镜像搬运工具 Skopeo 使用
作为公司内部 PaaS toB 产品的打包发布人员,容器镜像对我们打工人而言就像是工地上的砖头 🧱,而我的一部分工作就是将这些砖头在各个仓库之间搬来搬去,最终将这些砖头打包放在产品的安装包中,形成一个完整的 PaaS 产品安装包。转载 2022-10-21 08:39:56 · 1733 阅读 · 0 评论 -
Docker load 大镜像(17G) 报错no space left on device
Docker load 大镜像 (17G) 报错 no space left on device原创 2022-10-13 09:32:35 · 2048 阅读 · 1 评论 -
Docker运行ubuntu22.04出现异常
通常情况下,容器里面所有的系统调用都会被docker捕获,然后docker决定如何处理它们。如果docker中没有为特定系统调用指定策略,则默认的策略会通知容器这边"Permission Denied"。由于生产环境调整docker版本不是一件容易的事情,所以生产环境在构建镜像时候要避免使用ubuntu21.10和fedora35以更高版本的镜像,以及使用它们作为基础镜像的其他镜像。不过这会有很大的问题,一个是你的容器将变得不安全,另一个是这些参数在构建镜像的时候是不可用的。的时候出现了以下报错。转载 2022-08-22 20:28:41 · 3170 阅读 · 1 评论 -
Harbor2.2 用户角色权限速查
在公共项目中,所有用户都可以查看存储库列表、镜像、镜像漏洞、helmcharts和helmcharts版本、拉取镜像、重新标记镜像(需要目标镜像的推送权限)、下载helmcharts、下载helmcharts版本。通过将用户包含在项目中并向他们分配以下角色之一,你可以向用户提供对这些镜像的访问权限。*只有Harbor系统管理员可以编辑项目配额和添加新的扫描器。用户具有不同的能力,具体取决于他们在项目中的角色。下表描述了项目中的各种用户权限级别。系统管理员拥有项目的所有权限。......原创 2022-07-24 15:02:39 · 2879 阅读 · 0 评论 -
使用bitnamiredis-sentinel部署Redis 哨兵模式
获取 Bitnami Redis® Sentinel Docker 镜像的推荐方法是从Docker Hub Registry中提取预构建的镜像。要使用特定版本,你可以拉取版本化标签。你可以在 Docker Hub Registry 中查看可用版本的列表。如果你愿意,你也可以自己构建镜像。连接到其他容器使用Docker 容器网络,你的应用程序容器可以轻松访问在容器内运行的 Redis® 服务器。连接到同一网络的容器可以使用容器名称作为主机名相互通信。在此示例中,我们将创建一个 Redis® Senti原创 2022-06-26 20:57:10 · 9913 阅读 · 2 评论 -
基于Docker快速搭建 PostgreSQL 高可用方案
此 PostgreSQL 集群解决方案包括 PostgreSQL 复制管理器(),这是一种用于管理 PostgreSQL 集群上的复制()和故障转移()的开源工具。获取 Bitnami PostgreSQL HA Docker 镜像的推荐方法是从 Docker Hub Registry 中提取预构建的镜像。要使用特定版本,你可以拉取版本化标签。 你可以在 中查看可用版本的列表。如果你愿意,你也可以自己构建镜像。持久化你的应用程序如果删除容器,所有数据都将丢失,下次运行镜像时,数据库将重新初始化。原创 2022-06-15 09:47:22 · 7509 阅读 · 7 评论 -
docker 没有 /sys/fs/cgroup/cpu/docker这个目录
docker 没有 /sys/fs/cgroup/cpu/docker这个目录问题现象用户执行 docker run 时的参数指定cpu了,比如这样一条命令:docker run -d --name test-cpu --cpu-period=100000 --cpu-quota=20000 nginx在启动这个容器后,我们可以通过查看 Cgroups 文件系统下,CPU 子系统中,“docker”这个控制组里的资源限制文件的内容来确认:预期效果cat /sys/fs/cgroup/cpu/原创 2022-03-24 23:30:00 · 4380 阅读 · 0 评论 -
iptables常用命令小清单
iptables常用命令小清单iptables简介iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。**“四表”**是指 iptables 的功能,默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):filter 表:控制原创 2022-03-23 21:45:00 · 7883 阅读 · 0 评论 -
Linux资源管理之cgroups简介
引子cgroups 是Linux内核提供的一种可以限制单个进程或者多个进程所使用资源的机制,可以对 cpu,内存等资源实现精细化的控制,目前越来越火的轻量级容器 Docker 就使用了 cgroups 提供的资源限制能力来完成cpu,内存等部分的资源控制。另外,开发者也可以使用 cgroups 提供的精细化控制能力,限制某一个或者某一组进程的资源使用。比如在一个既部署了前端 web 服务,也部署了后端计算模块的八核服务器上,可以使用 cgroups 限制 web server 仅可以使用其中的六个核转载 2022-03-21 23:15:00 · 2517 阅读 · 1 评论 -
Docker环境下Spring Boot应用内存飙升分析与解决
目录Spring Boot应用内存飙升服务现状JVM默认内存设置优化限制JVM内存参数解释JVM常见参数java.security.egd 作用优化后的效果JVM参数设置是否生效基础镜像优化Fabric8 备注Xmx < limit支持springboot多环境和jvm动态配置的Dockerfile参考Spring Boot应用内存飙升一个简单的Spring Boot应用, 几乎只有一个用户在用,内存竟然达...原创 2021-08-23 20:59:15 · 5294 阅读 · 4 评论 -
MinIO: Console endpoint is listening on a dynamic port , please use --console-address
MinIO: Console endpoint is listening on a dynamic port , please use --console-address原创 2021-07-30 16:12:15 · 15411 阅读 · 0 评论 -
Docker小工具: runlike 和 whaler
最近发现两个非常好用的工具,一个是runlike,一个是whaler runlike:通过容器打印出容器的启动命令 whaler:通过镜像导出dockerfile 找回Docker容器运行的命令平时可能因为测试或者一些规范的操作方式导致启动一个容器,忘记了这个容器的启动命令是什么了,又需要找回来在别的机器上创建的时候,就很麻烦,可能很多人会想到通过docker inspect分析输出的json文件中的volume、ports、Env等dockerinspect$contai..转载 2021-07-22 11:02:43 · 7751 阅读 · 1 评论 -
Docker容器时间与宿主机不一致?3个解决方案
前言如果在启动Docker容器的过程中没有单独配置localtime,很可能造成Docker容器时间与主机时间不一致的情况,比如UTC和CST相差8小时,换句话来说就是容器时间与北京时间相差8个小时。更新历史2020年08月13日 - 初稿阅读原文 -https://wsgzao.github.io/post...问题描述问题:容器时间与北京时间相差8个小时# 查看主机时间[root@localhost ~]# date2020年07月27日 星期三 22:42:44 C.转载 2021-06-24 09:21:08 · 10950 阅读 · 1 评论 -
Docker-in-Docker: Jenkins CI 内部如何运行 docker
目录Docker-in-Docker:简化了流程Docker-in-Docker:很糟糕Docker-in-Docker:很丑陋Docker-in-Docker:它变得更糟解决方案Jenkins 支持 Docker让容器使用宿主的docker解决访问宿主 docker.sock 的权限问题1. 修改宿主机 docker.sock 文件权限设置2.给予容器 docker 组权限3.Jenkins启动时指定root用户或使用特权升级策略(privileged: t..转载 2021-05-25 14:46:27 · 3601 阅读 · 3 评论 -
Docker: 查找支持Windows平台的容器镜像
目录Doceker: 查找支持Windows平台的容器镜像备注一部分新用户在学习Docker时,经常会使用Win10自带的Docker但是经常会提示所选的基础镜像不适合Windows平台Doceker: 查找支持Windows平台的容器镜像https://hub.docker.com/search?operating_system=windows&source=verified&type=image点击具体镜像通过Tags的OS/ARCH可.原创 2021-05-14 17:10:35 · 1007 阅读 · 1 评论 -
为什么 Google 和 Facebook 不用 Docker
目录一言蔽之PackagingTarballXAR分层Overlay FilesystemDocker Image and LayerDocker Image 的好处Google 和 Facebook 不需要 DockerGoogle 和 Facebook 没在用 Docker完美解法的技术挑战本文涉及的所有技术细节都在开源软件和论文中。写本文的起因是我想让分布式 PyTorch 程序更快的在 Facebook 的集群上启动。探索过程很有趣。也展示了工业机转载 2021-05-07 20:22:35 · 221 阅读 · 0 评论 -
基于BuildKit优化Dockerfile的构建
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录本文目标先决条件简单的Dockerfile示例启用BuildKit从最小到最频繁变化的顺序避免使用“COPY .”apt-get update 和install命令一起使用删除不必要的依赖删除程序包管理器缓存尽可能使用官方镜像使用特定标签寻找最小的镜像在一致的环境中从源构建在单独的步骤中获取依赖项多阶段..原创 2021-04-06 13:27:54 · 1617 阅读 · 0 评论 -
构建Java镜像的10个最佳实践
原文发表于kubernetes中文社区,为作者原创翻译,原文地址更多kubernetes文章,请多关注kubernetes中文社区目录构建一个简单的Java容器镜像1.Docker镜像使用确定性的标签2.在Java镜像中仅安装需要的内容3. 查找并修复Java镜像中的安全漏洞4.使用多阶段构建Java镜像防止敏感信息泄漏5.不要以Root用户运行容器6.Java应用程序不要使用PID为1的进程7.优雅下线Java应用程序8.使用 .dockerignor..原创 2021-03-27 20:44:44 · 13590 阅读 · 2 评论 -
Docker Compose:部署SpringBoot应用(含MySQL,Redis,Nacos,RabbitMQ,Nginx)
目录前言Docker Compose安装、常用命令、模板文件使用Docker Compose的步骤使用Docker Compose部署SpringBoot应用1. 运行配置要求2. 容器化SpringBoot应用3. SpringBoot依赖服务脚本devecimag-docker-compose-env.yml参数变量.envMySQL 数据库脚本执行1. Navicat2. Docker命令4. SpringBoot应用服务脚本devecima..原创 2021-02-22 15:29:18 · 5440 阅读 · 8 评论 -
docker-maven-plugin:自动构建Maven多模块的Docker镜像,并推送到Docker Registry或阿里云
目录docker-maven-plugin基本介绍使用手册Maven Goals命令Maven命令执行顺序Skip Docker Goals Bound to Maven Phases(跳过)Configuration使用示例注意事项(准备工作)Maven多模块工程Pom配置-父工程配置信息Pom配置-子工程编写Dockerfile文件制作镜像前提:推送镜像-Docker RegistryDocker Registry 2.0搭建...原创 2021-02-05 17:05:14 · 11557 阅读 · 8 评论 -
阿里云镜像仓库:拉取和推送Docker镜像
Docker:镜像加速器阿里云创建阿里云账号首先你需要创建一个阿里云的账户地址:https://www.aliyun.com创建完阿里云账户的时候,他会让你创建一个仓库的账户例如username:myresp, password:456789 这两个密码是独立的,账号一致如果已经有账号了就直接登录即可(仓库的账号用户名下面会用到)接下就是创建命名空间,可以直接访问改地址https://cr.console.aliyun.com也可以在登陆之后的页面上搜索容器镜像服务也可以..原创 2021-01-30 16:17:47 · 11079 阅读 · 0 评论 -
Docker可视化工具Portainer的安装和使用
目录Portainer介绍Portainer主要功能:优势不足官方的 Demo 体验管理单台Docker主机基础环境部署Portainer服务器部署过程部署命令说明通过ip:9000访问,创建用户添加Local Docker主机添加RemoteDocker主机主界面功能介绍Portainer介绍Docker的可视化管理工具有DockerUI、Shipyard、Rancher、Portainer等,本文使用Portainer工具对D...原创 2021-01-30 11:08:06 · 6337 阅读 · 0 评论 -
Docker Compose安装、常用命令、模板文件
目录Compose 简介Compose中有两个重要的概念:安装与卸载二进制包PIP 安装bash 补全命令检测是否安装成功卸载Compose 命令说明命令对象与格式命令选项命令使用说明buildconfigdownexechelpimageskilllogspauseportpspullpushrestartrmrunscalestartstoptopunpauseup.转载 2021-01-29 10:15:55 · 829 阅读 · 1 评论 -
如何以非root用户运行Docker容器
原文发表于kubernetes中文社区,为作者原创 原文地址需要用root用户运行Docker?组织中,经常以Root用户运行Docker中的容器。但是你的工作负载真的需要root权限吗?显然很少。尽管如此,默认情况下,你的容器仍将以root用户身份运行。但这可能会带来严重的安全问题。实际上,如果以root用户运行容器内部的进程,就是以root用户身份运行主机的进程。这就为那些恶意访问主...原创 2020-04-07 07:16:16 · 10429 阅读 · 2 评论 -
Docker :常用命令小册子
Docker 命令查询原创 2019-10-01 14:51:33 · 5093 阅读 · 14 评论 -
Dockerfile : 常用指令
镜像的定制镜像是多层存储,每一层是在前一层的基础上进行的修改;而容器同样也是多层存储,是在以镜像为基础层,在其基础上加一层作为容器运行时的存储层。镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写入一个脚本,用这个脚本来构建、定制镜像,那么曾经遇到的无法重复的问题、镜像构建透明性的问题、体积的问题就都会解决。这个脚本就是 Docke...原创 2019-10-12 08:52:08 · 1194 阅读 · 0 评论 -
Docker:慕课网--第一个docker化的java应用
课程分享:课程分享:Docker+Kubernetes(k8s)微服务容器化实践 课程分享:Kubernetes(k8s)生产级实践指南 从部署到核心应用 课程分享:(极客时间)深入剖析Kubernetes Docker简介:Docker是一个使用Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的机器...原创 2019-08-06 15:49:17 · 13739 阅读 · 4 评论 -
Docker:镜像加速器
镜像加速器国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如:Azure 中国镜像https://dockerhub.azk8s.cn 阿里云加速器(需登录账号获取) 七牛云加速器https://reg-mirror.qiniu.com由于镜像服务可能出现宕机,建议同时配置多个镜像。国内各大云服务商均提...原创 2019-07-28 21:40:21 · 14873 阅读 · 0 评论 -
Docker层和虚悬镜像(dangling image)介绍
原文发表于kubernetes中文社区,为作者原创 原文地址当你拉取Docker镜像时,你会注意到它被拉取成不同的层。另外,当你创建自己的Docker镜像时,也会创建多个层。在本文中,我们将更好地理解Docker层。1.什么是Docker层?Docker镜像由几层组成。每层都对应 Dockerfile中的特定指定。Docker层创建指令有: RUN, COPY, ADD。其他指令将创建...原创 2020-04-02 22:14:20 · 5251 阅读 · 0 评论 -
Docker安装指定版本异常:Error: Package: docker-ce-17.03.1.ce-1.el7.centos.x86_64 (docker-ce-stable)
产生问题的安装步骤sudo yum-config-manager -y --add-repohttps://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce-17.03.1.ce-1.el7.centos异常信息Loaded plugins: fastestmirror,...原创 2019-07-29 08:00:34 · 14587 阅读 · 4 评论 -
Docker异常: driver failed programming external connectivity on endpoint ... iptables: No chain
问题现场docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql5.6container (9e00a1b6f453bb44e1217acdb8732734322db8088b38e057a5ff17b6d3ec2941): (iptables ...原创 2019-08-08 01:37:54 · 2197 阅读 · 4 评论 -
既然有了 Docker, 为什么还要 Kubernetes ?
在尚未开始学习Kubernetes之前,我认为它是一套非常复杂的系统,各种抽象概念以及复杂的安装过程。差点因为安装不顺,打算就此放弃。理由很简单:既然有了 Docker,为什么还要 Kubernetes?之所以觉得Kubernetes系统复杂、难,关键是不知道它到底是干啥的?再加上老版本繁琐的安装过程,愿意啃它是需要一点毅力的。现在,就通过一张简单的对比图告诉你,它到底干了啥!单...转载 2019-08-09 15:45:44 · 5168 阅读 · 4 评论