Docker
Docker容器实践经验
catoop
性格开朗外向,积极进取充满热情,为人诚恳做事用心,爱好手工实践和大自然。有较强的自学意识创新意识和进取精神。喜欢分享技术收获,虽然是一个知识的搬运工,但对技术孜孜不倦,什么都想搞什么都想做的劲头小伙,善于灵活的运用技术优雅的解决问题,善于表达乐于沟通,一切只因心中那殿力量努力向上。
展开
-
docker-compose 之 redis-stack
Redis和Redis Stack的主要区别在于功能和适用场景功能差异:Redis是一个开源的内存数据结构存储系统,主要用作数据库、缓存和消息代理,支持多种数据结构如字符串、列表、集合等,并提供丰富的操作命令,如存储、读取、删除等1。Redis Stack则是基于Redis的数据结构栈实现,它将Redis的列表数据结构与一些自定义操作命令结合起来,提供了栈的常用操作,并扩展了Redis的功能,支持更复杂的用例,如数据查询、图形数据结构和实时流处理等12。原创 2024-09-12 14:21:45 · 530 阅读 · 0 评论 -
为 harbor 项目配置独立域名访问(去除 path 路径中的项目名称小尾巴)
为 harbor 项目配置独立域名访问(去除 path 路径中的项目名称小尾巴)原创 2024-08-12 11:33:01 · 777 阅读 · 0 评论 -
Docker Hub 镜像代理加速
截止本文截稿时,仍可以正常使用,未来情况以及其他几个需要大家自行验证。拉取的结果如下(注意拉取后的镜像名称可同样会有。对下载的镜像有白名单要求,详见。原创 2024-08-09 14:44:29 · 620 阅读 · 0 评论 -
docker 设置代理,通过代理服务器拉取镜像
docker 拉取目标镜像需要通过代理服务器进行时,可以通过为 docker 配置全局代理来实现。注:Linux 上通过临时命令 export HTTP_PROXY 设置的代理,对 curl 这些有用,但是对 docker pull 不起作用。原创 2024-07-03 15:10:11 · 1860 阅读 · 1 评论 -
docker-compose 之 达梦数据库(dm8-v202406版)
1、达梦官方没有提供镜像直接 pull 的方式,提供的是镜像的 tar 包,所以需要先去官网下载tar包。2、然后使用如下 docker load 命令导入镜像到服务上:导入完成后,可以使用 docker images 查看导入的镜像。3、创建达梦数据文件目录:4、配置 docker-compose.yml 文件,片段如下所示:如上配置后,最后使用启动服务即可。命令 可以查看日志。(END)原创 2024-06-24 16:42:17 · 512 阅读 · 0 评论 -
Kubernetes 容器命令行 cri-tools 安装
请注意,有些系统 containerd 的 socket 位置可能不同,常见的位置包括。是一个命令行工具,用于与容器运行时接口(CRI)交互。1、拷贝并执行如下命令自动下载安装。根据你的系统调整配置,或者使用。2、配置 crictl。原创 2024-06-05 16:25:30 · 305 阅读 · 0 评论 -
使用 Docker 容器运行 Oracle 数据库
在实际开发中,大部分时间可能都在开发、测试和验证工作,有些时候我们需要快速使用一个临时 oracle 数据库来做开发或者验证工作,而又会因为 oracle 安装麻烦而烦恼。这种快速临时性需求,我们可以选中使用 docker 容器的方式运行一个 oracle 数据库,官方也给出了对应的镜像,包括 amd64 和 arm64 架构的都有。原创 2024-05-14 17:23:48 · 1535 阅读 · 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 · 487 阅读 · 1 评论 -
修改 docker 容器的启动参数等信息
docker 容器在之前启动时,指定了 cmd 启动参数和挂载目录等配置。后来因为业务需要,需要变更启动参数或挂载目录等信息。查看这两个配置文件内容,根据自己实际需要修改的内容对其进行修改即可,注意修改之前进行备份一下。3、找到容器ID后进入容器配置文件所在目录,如下以 rancher-agent 为例。这一步很重要,否则修改无法成功,你会发现修改后配置又回去了。5、最后启动 docker 服务再启动容器即可生效。1、停止所有 docker 容器。2、停止 docker 服务。4、查看和修改配置文件。原创 2023-02-16 11:21:07 · 3548 阅读 · 0 评论 -
docker / containerd 错误 panic: invalid freelist page: 162, page type is leaf
4、最后查看 containerd 服务状态为。containerd 服务启动失败,使用命令。最后就可以启动 docker 服务了。1、查看 containerd 路径。根据错误日志信息,在。原创 2023-02-09 15:38:12 · 1153 阅读 · 0 评论 -
docker 错误 WARNING: IPv4 forwarding is disabled. Networking will not work.
这个错误出现在使用 docker 的服务器上,当你进入 docker 容器时,如果出现这样的。提示,则表示服务器没有开启 IPv4 转发,按照下面方法配置开启转发即可。如果有的 docker 容器还是有错误,可以尝试重启一下对应的容器。原创 2023-02-09 12:36:01 · 2133 阅读 · 0 评论 -
docker 启动 jenkins 挂载目录权限问题 Permission denied
通过 docker 挂载目录的 jenkins,查看 jenkins 日志发现存在一些文件无法写入或者这样的异常错误,基本可以判定是文件所有权问题。比如你宿主机挂载的文件目录是 root 的,而 docker 容器中 jenkins 应用程序的默认用户是jenkins,id 和 group 都是 1000(官方容器默认的值),这种情况在容器中就无法正常写入文件到宿主机。原创 2023-02-02 16:19:33 · 1918 阅读 · 1 评论 -
docker 容器设置 DNS 不生效的问题
但是使用自定义网络话(docker-compose 默认就创建新的自定义网络),就不会用宿主机的 dns文件,从而不能覆盖 resolv.conf 配置,既不能生效。中配置所有 docker 容器的缺省 dns(这里配置的 dns 仅对,docker run 默认网络启动的走。等文件 都是默认挂载宿主机里的配置的,命令行进入容器后,在容器中使用。既在宿主机上自定义一个文件,挂载到容器内的。的容器可以通过相关命令查看它走的是 docker0 网桥)。中的容器配置 dns 生效,就需要为容器设置。原创 2023-01-10 23:38:29 · 3110 阅读 · 0 评论 -
docker-compose 容器固定IP(network subnet)
和在应用中引用设定固定 IP 的配置。如下是为容器设置固定IP的。原创 2023-01-10 20:01:35 · 2230 阅读 · 0 评论 -
docker-compose 之 gogs、drone
docker-compose 之 gogs、drone。原创 2022-12-26 19:31:30 · 435 阅读 · 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 · 3284 阅读 · 0 评论 -
docker build、docker run 使用代理
很多时候在是构建 docker 镜像的时候,里面一些脚本需要从 github 上拉取资源,因为 github 网络不好的原因,我们可以通过制定代理进行构建。原创 2022-12-21 11:06:32 · 2607 阅读 · 0 评论 -
Docker 设置 DNS
DNS 解析和默认网关不同,用比喻来说网关属于套娃模式,当容器对外访问网络时,会经过宿主机。但是 DNS 可以理解为客户端端点模式,你宿主机配置了 DNS 并不能使你 Docker 容器就默认可以解析了。所以要想 Docker 容器可以正常的通过域名访问,需要为容器也设置具体的 DNS 地址。文件内容或者通过 ping 等方法验证结果。最后使用命令进入启动的容器内部,查看。原创 2022-12-16 09:45:16 · 6251 阅读 · 0 评论 -
Dockerfile ENTRYPOINT 使用变量
本意是想在 entrypoint 执行的命令中添加变量参数 JAVA_OPTS 和 PARAMS,如果按照这样写,变量是不被解析的,会报错。那么正确的写法是使用。原创 2022-12-04 11:31:29 · 5089 阅读 · 3 评论 -
Linux 普通用户执行 docker 命令
在有些环境中,安装 docker 可以提供 root 命令安装,但是后期的 docker 镜像和容器的维护可能不允许 root 用户操作,这种情况就需要给普通用户授权可以操作 docker 命令。原创 2022-11-30 15:21:36 · 4264 阅读 · 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 · 6129 阅读 · 0 评论 -
Docker Build Cache 缓存清理
可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。Docker 18.09 引入了 BuildKit ,提升了构建过程的性能、安全、存储管理等能力。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都删掉,请注意使用!如果你希望保留最近一定时间的缓存,删除时长更久的缓存,可以通过添加。清理得更加彻底,可以将没有容器使用Docker镜像都删掉。最后的 RECLAIMABLE 这一列表示可回收的大小。原创 2022-11-23 16:40:27 · 15761 阅读 · 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 · 2569 阅读 · 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 · 1250 阅读 · 1 评论 -
docker 镜像瘦身工具 docker-slim
docker-slim的主要作用是对docker镜像进行瘦身的工具。经过瘦身处理的镜像会变小一些甚至变小数倍,且瘦身收仍然可以正常运行。原创 2022-07-29 14:08:55 · 3950 阅读 · 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 · 17068 阅读 · 0 评论 -
Oracle Docker 镜像(制作)
前言在一个裸机 Linux 上安装 Oracle 步骤很多,且对安装环境有不少要求,一不小心就容易出错。安装过 Oracle 的想必都有一定感触。在有些场合中我们对 Oralce 没有那么高的要求,比如临时测试、临时运行个项目等单数据库实例场景。这种情况使用 docker 一键启动运行 docker 会特别方便,运行时将数据挂载出来也能在很大程度上保证数据安全问题。Oracle 官方已经正式发布了应该构建 Oracle 镜像的 dockerfile,目前支持列表如下(引用自官方):Oracle Da原创 2022-02-22 18:23:36 · 4959 阅读 · 3 评论 -
群晖 docker 启动脚本(加载群晖透明代理模块示例)
群晖 docker 启动脚本位置 /var/packages/Docker/scripts/start-stop-status,你可以修改这个脚本,在 docker 服务启动、停止对应的位置添加自己需要特定触发的命令。例如:需要在 docker 启动后执行 ip link 将自定义创建的 docker macvlan 驱动与物理网卡 ovs_system 连接。...原创 2021-12-18 00:22:33 · 3063 阅读 · 0 评论 -
Harbor 启用 helmchart 服务
如果你没用过 harbor 然后你仅仅需要搭建一个 helmchart 仓库服务,那么你不必使用 harbor,如果你的环境中已经有 nexus3 了,你可以直接使用 nexus3 作为 helmchart 仓库,很好用且支持直接代理缓存第三方 helmchart 仓库。如果你已经在用 harbor,刚好你也需要有一个地方可以存储 helmchart,那么你可以为 harbor 开启 helmchart 服务支持,这样就不必额外再安装另外的 helmc原创 2021-12-10 09:19:03 · 4966 阅读 · 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 · 5749 阅读 · 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 · 6767 阅读 · 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 · 1031 阅读 · 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 · 5009 阅读 · 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 · 2225 阅读 · 0 评论 -
docker-compose 之 达梦数据库(dm8-v201106)
(版本对应2020年11月06日),只是推送到了docerhub中,未做任何修改,请放心使用。达梦数据库初始化安装,需要先提取容器中的数据文件,然后再使用docker方式启动。注:本文是比较旧的达梦版本 v201106,较新的版本教程详见帖子 “这一步为了将数据文件拿到挂载目录中,防止以后删除容器导致数据丢失。如上配置后,最后使用。原创 2021-07-27 17:54:19 · 1967 阅读 · 3 评论 -
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 · 993 阅读 · 0 评论 -
docker 中安装 ssh
一些比较简版的docker镜像中,是默认没有安装ssh的,当我们有这个需求的时候,需要为它安装,具体步骤如下:一、使用 yum 安装yum -y install openssl openssh-server openssh-clients二、启动注意:正常情况我们是要使用下面的命令来启动ssh和添加为系统服务的,但是因为docker中没有权限执行systemctl(除非你用特权模式启动容器)systemctl start sshd.servicesystemctl enable sshd.se原创 2021-07-07 16:35:10 · 1946 阅读 · 0 评论 -
springboot 控制台乱码(docker启动springboot控制台乱码)
场景本机idea开发,运行程序,控制台日志中文正常。基于某docker基础镜像,将springboot打包后的启动jar包做成镜像后,启动容器发现控制台中文乱码。原因大概率是因为系统默认编码导致,有些docker基础镜像不像标准的Linux操作系统对中文编码做了很好的处理和识别,设置系统默认编码也容易。但是对于docker镜像,我们一般追求 “简” 也就是 “体积小” ,所以可能会有很多本来标准操作系统中有的包和库没有的情况,也可能这个docker镜像的默认编码不是我们想象的那样。解决你可以尝原创 2021-07-06 08:55:44 · 1160 阅读 · 0 评论 -
如何在nginx容器中使用ping、nslookup、ip、curl 等工具?
Nginx镜像太精简了,启动一个容器进行测试时,常用的网络工具都没有,可以使用下面的命令进行安装。也可以直接起一个busybox容器进行测试。apt update#pingapt install inetutils-ping #nslookupapt install dnsutils #ifconfigapt install net-tools #ipapt install iproute2 #curlapt install curl(END)...转载 2021-01-26 16:14:01 · 1418 阅读 · 0 评论 -
docker 容器之 ftp
docker-compose.yml 内容如下:version: '3.8'services: vsftpd: image: harbor.goodcol.com:843/dockerhub_proxy/fauria/vsftpd:latest container_name: vsftpd network_mode: "host" volumes: - ./vsftpd:/home/vsftpd restart: always enviro原创 2021-01-20 15:15:36 · 580 阅读 · 0 评论