
Docker
文章平均质量分 54
Docker容器实践经验
catoop
性格开朗外向,积极进取充满热情,为人诚恳做事用心,爱好手工实践和大自然。有较强的自学意识创新意识和进取精神。喜欢分享技术收获,虽然是一个知识的搬运工,但对技术孜孜不倦,什么都想搞什么都想做的劲头小伙,善于灵活的运用技术优雅的解决问题,善于表达乐于沟通,一切只因心中那殿力量努力向上。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Harbor 高可用部署
的配置,如图所示我们需要将配置文件中的数据库和redis配置为外部数据库,并且将多个 harbor 节点挂载同一份 nfs 文件目录。执行后会通过网络获取Docker Image,建议提前修改好国内镜像站加速。参考:https://blog.51cto.com/mageedu/2605814。高可用方案和单节点 harbor 的主要区别在。生成harbor运行的必要文件(环境)以及。原创 2025-03-13 09:12:07 · 207 阅读 · 0 评论 -
Docker Swarm 集群
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。转载 2025-03-12 14:44:36 · 97 阅读 · 0 评论 -
Docker Machine
Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean。转载 2025-03-12 14:42:47 · 78 阅读 · 0 评论 -
docker-compose 之 禅道(zentao) 社区版
本文禅道使用内置的mysql数据库,挂载的data目录包含了禅道的数据文件和mysql数据库文件,方便归档及避免删除容器造成数据丢失。官方文档:https://www.zentao.net/book/zentaopms/586.html。用来解决 nginx 对外 https 访问不能正常登录系统的问题。如上配置后,需要先创建目录。原创 2024-12-11 18:04:27 · 414 阅读 · 0 评论 -
Docker Swarm 部署集群应用
要在Swarm模式下运行docker,需要先安装docker,参考安装教程自1.12.0版本起的 docker 包含了 swarm 模式,用于管理 docker 集群。可以使用命令行来创建 swarm 集群,部署应用,管理swarm的行为。Swarm 模式允许您创建一个或多个 Docker 引擎的集群(称为 Swarm)。Swarm 由一个或多个节点组成:运行 Docker 引擎的物理机或虚拟机。转载 2024-12-07 20:29:10 · 410 阅读 · 0 评论 -
docker-compose 之 redis-stack
Redis和Redis Stack的主要区别在于功能和适用场景功能差异:Redis是一个开源的内存数据结构存储系统,主要用作数据库、缓存和消息代理,支持多种数据结构如字符串、列表、集合等,并提供丰富的操作命令,如存储、读取、删除等1。Redis Stack则是基于Redis的数据结构栈实现,它将Redis的列表数据结构与一些自定义操作命令结合起来,提供了栈的常用操作,并扩展了Redis的功能,支持更复杂的用例,如数据查询、图形数据结构和实时流处理等12。原创 2024-09-12 14:21:45 · 1087 阅读 · 0 评论 -
为 harbor 项目配置独立域名访问(去除 path 路径中的项目名称小尾巴)
为 harbor 项目配置独立域名访问(去除 path 路径中的项目名称小尾巴)原创 2024-08-12 11:33:01 · 1050 阅读 · 0 评论 -
Docker Hub 镜像代理加速
截止本文截稿时,仍可以正常使用,未来情况以及其他几个需要大家自行验证。拉取的结果如下(注意拉取后的镜像名称可同样会有。对下载的镜像有白名单要求,详见。原创 2024-08-09 14:44:29 · 1967 阅读 · 0 评论 -
docker 设置代理,通过代理服务器拉取镜像
docker 拉取目标镜像需要通过代理服务器进行时,可以通过为 docker 配置全局代理来实现。注:Linux 上通过临时命令 export HTTP_PROXY 设置的代理,对 curl 这些有用,但是对 docker pull 不起作用。原创 2024-07-03 15:10:11 · 4370 阅读 · 1 评论 -
docker-compose 之 达梦数据库(dm8-v20241022版)
1.SYSDBA_PWD 预设的时候,密码长度为 9~48 个字符,docker 版本使用暂不支持特殊字符为密码。1、达梦官方没有提供镜像直接 pull 的方式,提供的是镜像的 tar 包,所以需要先去。使用 -e 命令指定数据库初始化参数时,需要注意的是目前只支持预设以下九个 DM 参数。导入完成后,可以使用 docker images 查看导入的镜像。通过以下命令可以查看 Docker 镜像中数据库初始化的参数。2.-e 设置的时候 初始化参数必须使用大写,不可使用小写。如上配置后,最后使用。原创 2024-06-24 16:42:17 · 1659 阅读 · 0 评论 -
Kubernetes 容器命令行 cri-tools 安装
请注意,有些系统 containerd 的 socket 位置可能不同,常见的位置包括。是一个命令行工具,用于与容器运行时接口(CRI)交互。1、拷贝并执行如下命令自动下载安装。根据你的系统调整配置,或者使用。2、配置 crictl。原创 2024-06-05 16:25:30 · 990 阅读 · 0 评论 -
使用 Docker 容器运行 Oracle 数据库
在实际开发中,大部分时间可能都在开发、测试和验证工作,有些时候我们需要快速使用一个临时 oracle 数据库来做开发或者验证工作,而又会因为 oracle 安装麻烦而烦恼。这种快速临时性需求,我们可以选中使用 docker 容器的方式运行一个 oracle 数据库,官方也给出了对应的镜像,包括 amd64 和 arm64 架构的都有。原创 2024-05-14 17:23:48 · 2182 阅读 · 1 评论 -
docker 下载 oracle 企业版镜像(denied: requested access to the resource is denied)
oracle 镜像分为 free 版和 enterprise 版,前者是免费的,可以直接使用 docker pull 拉取,而后者的 enterprise 版,必须要在官网上接受版权协议才可以用对应账号拉取。但是也有例外,对于有授权协议,或者相关限制的私有镜像来说,他们会需要你的账户接受或者购买好对应的版权,然后才可以使用对应的账号正常拉取镜像。很多人使用免费镜像已经习惯了,找到对应的镜像地址后就是一通 docker pull,大部分来说这样就可以将镜像 pull 到本地了。请求的资源被拒绝访问。原创 2024-04-25 14:59:47 · 802 阅读 · 1 评论 -
修改 docker 容器的启动参数等信息
docker 容器在之前启动时,指定了 cmd 启动参数和挂载目录等配置。后来因为业务需要,需要变更启动参数或挂载目录等信息。查看这两个配置文件内容,根据自己实际需要修改的内容对其进行修改即可,注意修改之前进行备份一下。3、找到容器ID后进入容器配置文件所在目录,如下以 rancher-agent 为例。这一步很重要,否则修改无法成功,你会发现修改后配置又回去了。5、最后启动 docker 服务再启动容器即可生效。1、停止所有 docker 容器。2、停止 docker 服务。4、查看和修改配置文件。原创 2023-02-16 11:21:07 · 3851 阅读 · 0 评论 -
docker / containerd 错误 panic: invalid freelist page: 162, page type is leaf
4、最后查看 containerd 服务状态为。containerd 服务启动失败,使用命令。最后就可以启动 docker 服务了。1、查看 containerd 路径。根据错误日志信息,在。原创 2023-02-09 15:38:12 · 1584 阅读 · 0 评论 -
docker 错误 WARNING: IPv4 forwarding is disabled. Networking will not work.
这个错误出现在使用 docker 的服务器上,当你进入 docker 容器时,如果出现这样的。提示,则表示服务器没有开启 IPv4 转发,按照下面方法配置开启转发即可。如果有的 docker 容器还是有错误,可以尝试重启一下对应的容器。原创 2023-02-09 12:36:01 · 2220 阅读 · 0 评论 -
docker 启动 jenkins 挂载目录权限问题 Permission denied
通过 docker 挂载目录的 jenkins,查看 jenkins 日志发现存在一些文件无法写入或者这样的异常错误,基本可以判定是文件所有权问题。比如你宿主机挂载的文件目录是 root 的,而 docker 容器中 jenkins 应用程序的默认用户是jenkins,id 和 group 都是 1000(官方容器默认的值),这种情况在容器中就无法正常写入文件到宿主机。原创 2023-02-02 16:19:33 · 2348 阅读 · 1 评论 -
docker 容器设置 DNS 不生效的问题
但是使用自定义网络话(docker-compose 默认就创建新的自定义网络),就不会用宿主机的 dns文件,从而不能覆盖 resolv.conf 配置,既不能生效。中配置所有 docker 容器的缺省 dns(这里配置的 dns 仅对,docker run 默认网络启动的走。等文件 都是默认挂载宿主机里的配置的,命令行进入容器后,在容器中使用。既在宿主机上自定义一个文件,挂载到容器内的。的容器可以通过相关命令查看它走的是 docker0 网桥)。中的容器配置 dns 生效,就需要为容器设置。原创 2023-01-10 23:38:29 · 5125 阅读 · 0 评论 -
docker-compose 容器固定IP(network subnet)
和在应用中引用设定固定 IP 的配置。如下是为容器设置固定IP的。原创 2023-01-10 20:01:35 · 2584 阅读 · 0 评论 -
docker-compose 之 gogs、drone
这两个文件,才可以实现 drone 的自动化构建,下面是我自动构建 frp 镜像的示例,实例中特别给出里如何配置代理,用于解决 dockerhub 的网络问题。在 gogs 的项目根目录中需要创建。原创 2022-12-26 19:31:30 · 582 阅读 · 0 评论 -
docker macvlan 网络驱动
Docker 官方文档对 docker 的几种网络驱动做了介绍,并分别给出了使用方法,先看一下下面摘录自官方文档的内容。Network driversDocker’s networking subsystem is pluggable, using drivers. Several drivers exist by default, and provide core networking functionality:bridge: The default network driver. If yo原创 2021-12-17 11:01:26 · 3455 阅读 · 0 评论 -
docker build、docker run 使用代理
很多时候在是构建 docker 镜像的时候,里面一些脚本需要从 github 上拉取资源,因为 github 网络不好的原因,我们可以通过制定代理进行构建。原创 2022-12-21 11:06:32 · 3368 阅读 · 0 评论 -
Docker 设置 DNS
DNS 解析和默认网关不同,用比喻来说网关属于套娃模式,当容器对外访问网络时,会经过宿主机。但是 DNS 可以理解为客户端端点模式,你宿主机配置了 DNS 并不能使你 Docker 容器就默认可以解析了。所以要想 Docker 容器可以正常的通过域名访问,需要为容器也设置具体的 DNS 地址。文件内容或者通过 ping 等方法验证结果。最后使用命令进入启动的容器内部,查看。原创 2022-12-16 09:45:16 · 7092 阅读 · 0 评论 -
Dockerfile ENTRYPOINT 使用变量
本意是想在 entrypoint 执行的命令中添加变量参数 JAVA_OPTS 和 PARAMS,如果按照这样写,变量是不被解析的,会报错。那么正确的写法是使用。原创 2022-12-04 11:31:29 · 5842 阅读 · 3 评论 -
Linux 普通用户执行 docker 命令
在有些环境中,安装 docker 可以提供 root 命令安装,但是后期的 docker 镜像和容器的维护可能不允许 root 用户操作,这种情况就需要给普通用户授权可以操作 docker 命令。原创 2022-11-30 15:21:36 · 5162 阅读 · 0 评论 -
nerdctl 工具(用于 containerd 但兼容 docker CLI 习惯)
nerdctl是用于 containerd并且兼容 docker cli习惯的管理工具,主要适用于刚从 docker 转到 containerd 的用户,操作 containerd 的命令行工具 ctr 和 crictl 不怎么好用,所以就有了nerdctl。要特别说明的是:nerdctl 操作的是 containerd 而非 docker,所以和看到的内容不同,它只是用法保持了 docker cli 的习惯,实质上操作的是 containerd。原创 2022-11-25 11:28:51 · 6676 阅读 · 0 评论 -
Docker Build Cache 缓存清理
可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。Docker 18.09 引入了 BuildKit ,提升了构建过程的性能、安全、存储管理等能力。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都删掉,请注意使用!如果你希望保留最近一定时间的缓存,删除时长更久的缓存,可以通过添加。清理得更加彻底,可以将没有容器使用Docker镜像都删掉。最后的 RECLAIMABLE 这一列表示可回收的大小。原创 2022-11-23 16:40:27 · 21811 阅读 · 1 评论 -
Docker Buildkit(新增 --mount、--security、--network 等特性)
RUN --mount 允许您创建 mount,该 mount 作为构建期间可以访问的一部分。该特性可用于从构建的其他部分绑定文件,而无需复制、访问构建 secrets 或 ssh-agent 套接字,或者创建缓存位置从而加速构建。可以更加快速,有效,安全地构建docker 镜像,自 docker v18.06 版本起已经集成了该组件。BuildKit是Docker官方社区推出的下一代镜像构建神器。其中增加了一个很实用的新语法。,顾名思义用来文件挂载使用。原创 2022-11-20 16:29:30 · 3080 阅读 · 0 评论 -
Rancher 创建 RKE2 集群,日志错误:system-default-registry: registries must be valid RFC 3986 URI
2、在 harbor 中创建一个名称为 rancher 的项目,然后把你需要的所有镜像都弄进去,这样访问地址就符合规则了(这个就失去了自动代理的意义,个人觉得比较麻烦,而且你还得很清楚所有需要的镜像清单,漏一个都会出现未知问题导致集群安装失败)。5、通过 rancher 界面上创建集群,选择使用 RKE2,除了私服选项如下图配置外,其他均正常默认即可。这样的,这肯定会下载镜像失败因为这是不符合我私服代理 dockerhub 仓库的规则的。,然后删除注册失败的节点,重新输入命令重新注册节点。原创 2022-11-08 18:01:29 · 1627 阅读 · 1 评论 -
docker 镜像瘦身工具 docker-slim
docker-slim的主要作用是对docker镜像进行瘦身的工具。经过瘦身处理的镜像会变小一些甚至变小数倍,且瘦身收仍然可以正常运行。原创 2022-07-29 14:08:55 · 4592 阅读 · 2 评论 -
国内拉取 gcr.io 镜像(Google Kubernetes 镜像)
常用镜像仓库DockerHub镜像仓库google镜像仓库 https://gcr.io/google-containers/ https://gcr.io/kubernetes-helm/ https://gcr.io/google-containers/pausecoreos镜像仓库elastic镜像仓库RedHat镜像仓库阿里云镜像仓库华为云镜像仓库国内镜像源 部分国外镜像仓库无法访问,但国内有对应镜像源,可以从以下镜像源拉取到本地然转载 2022-04-14 11:27:19 · 20739 阅读 · 0 评论 -
Oracle Docker 镜像(制作)
前言在一个裸机 Linux 上安装 Oracle 步骤很多,且对安装环境有不少要求,一不小心就容易出错。安装过 Oracle 的想必都有一定感触。在有些场合中我们对 Oralce 没有那么高的要求,比如临时测试、临时运行个项目等单数据库实例场景。这种情况使用 docker 一键启动运行 docker 会特别方便,运行时将数据挂载出来也能在很大程度上保证数据安全问题。Oracle 官方已经正式发布了应该构建 Oracle 镜像的 dockerfile,目前支持列表如下(引用自官方):Oracle Da原创 2022-02-22 18:23:36 · 5707 阅读 · 3 评论 -
群晖 docker 启动脚本(加载群晖透明代理模块示例)
群晖 docker 启动脚本位置 /var/packages/Docker/scripts/start-stop-status,你可以修改这个脚本,在 docker 服务启动、停止对应的位置添加自己需要特定触发的命令。例如:需要在 docker 启动后执行 ip link 将自定义创建的 docker macvlan 驱动与物理网卡 ovs_system 连接。...原创 2021-12-18 00:22:33 · 3272 阅读 · 0 评论 -
Harbor 启用 helmchart 服务
如果你没用过 harbor 然后你仅仅需要搭建一个 helmchart 仓库服务,那么你不必使用 harbor,如果你的环境中已经有 nexus3 了,你可以直接使用 nexus3 作为 helmchart 仓库,很好用且支持直接代理缓存第三方 helmchart 仓库。如果你已经在用 harbor,刚好你也需要有一个地方可以存储 helmchart,那么你可以为 harbor 开启 helmchart 服务支持,这样就不必额外再安装另外的 helmc原创 2021-12-10 09:19:03 · 5566 阅读 · 0 评论 -
群晖 docker 版 transmission 安装 Web UI
1、docker 安装 transmission2、安装 WebUI1、下载脚本https://raw.githubusercontent.com/xzxiaoshan/transmission-web-control/master/release/install-tr-control-gitee.sh2、SSH 登录群晖# 1、执行命令sh install-tr-control-gitee.sh# 2、弹出的菜单选项,选择6自定义目录# 3、然后自定义目录输入你容器挂载出来的目录原创 2021-11-22 13:39:15 · 6396 阅读 · 0 评论 -
docker、containerd、ctr、crictl 的联系
一、docker 和 containerd1、docker 由 docker-client ,dockerd,containerd,docker-shim,runc组成,所以containerd是docker的基础组件之一2、从k8s的角度看,可以选择 containerd 或 docker 作为运行时组件:其中 containerd 调用链更短,组件更少,更稳定,占用节点资源更少。所以k8s后来的版本开始默认使用 containerd 。3、containerd 相比于docker , 多了 nam原创 2021-11-10 09:13:07 · 7589 阅读 · 4 评论 -
docker-compose 之 svn-server
搭建svn服务镜像使用 elleflorio/svn-server ,因为它打包了管理界面本文数据挂载目录示例为 /opt/soft/svn创建docker-compose.yml文件version: '3.7'services: svn-server: image: harbor.goodcol.com:843/dockerhub_proxy/elleflorio/svn-server:latest container_name: svn-server restart原创 2021-09-06 17:46:09 · 1140 阅读 · 0 评论 -
非root用户运行容器(K8S SecurityContext)
一、从构建镜像的角度下手将非root用户添加到Dockerfile# RUN命令执行创建用户和用户组(命令创建了一个用户newuser设定ID为5000,并指定了用户登录后使用的主目录和shell)RUN groupadd --gid 5000 newuser \ && useradd --home-dir /home/newuser --create-home --uid 5000 --gid 5000 --shell /bin/sh --skel /dev/null newus原创 2021-08-04 14:24:03 · 5477 阅读 · 0 评论 -
docker 构建镜像设置 ssh root 密码
以 root 密码 123456 为例的 Dockerfile 内容如下:FROM docker.io/store/oracle/serverjre:8#镜像的制作人MAINTAINER 365384722@qq.comRUN set -x && \ yum -y install openssl openssh-server openssh-clients && \ sed -i "s/#PermitEmptyPasswords no/PermitEmpt原创 2021-08-03 14:11:33 · 2435 阅读 · 0 评论 -
Docker CentOS Failed to get D-Bus connection: Operation not permitted
问题基于docker启动了centos容器,需要在centos容器里使用systemctl start xxx启动服务,出现错误:Failed to get D-Bus connection: Operation not permitted原因ptrace系统调用的权限问题,容器默认情况下是没有权限去ptrace进程的。解决方法启动容器的时候通过privileged=true开启特权模式,并且以/usr/sbin/init作为入口命令启动,例如:docker run -d -name cen原创 2021-07-26 18:24:12 · 1070 阅读 · 0 评论