容器出现时间异常问题及解决方法

问题 最近在使用 MinIO SDK 上传资源对象时, 出现了一个问题: The difference between the request time and the server's time is too large. 从错误信息可以看出客户端上传资源的时间与 Minio server 的时间相差太大, 导致资源上传失败。 解决 根据错误信息得出 server 端的时间出现异常, 由于我采用容器部署的方式, 因此可以先查看容器的时间是否正确。 进入 Minio 容器 , 执行命令: date, 可以看到如图结果( UTC 时间): 而目前的时间是( CST 时间) : 可以看出容器的时间与实际的时间相差太大, 所以导致资源上传失败。 方法1 出现了时间异常的问题, 可能很多人第一反应就是调整容器的时间,通过 ntpdate 等工具调整时间, 这种解决方法方法适用于非容器的 MinIO SERVER 环境调整时间,容器因为一些限制无法使用此方法。 方法2 在网上查看了许多相关的问题,有了一个针对容器的解决方法,执行: 1 docker run --rm --privileged alpine hwclock -s 可以看到容器时间已经正常了:...

November 12, 2021 · 1 min · overstarry

Docker_grafana启动失败

Docker grafana 启动失败 今天在使用 Docker 启动 grafana 的时候, 遇到了一个问题, 问题如图: 为什么会出现这个问题 根据错误日志的提示, 打开 http://docs.grafana.org/installation/docker/#migrate-to-v51-or-later 网址, 根据官方的描述,grafana Docker镜像在版本5.1及以后有了重大改变: * 在容器启动过程中不会改变文件的权限 * 默认用户ID由104 变为 472 * 删除了以下的隐式卷: * /var/lib/grafana * /etc/grafana * /var/log/grafana 解决 根据官方文档的提示,我仔细查看了我的 compose 文件, 发现我加了 user: ‘104’ , 应该是此行的原因导致 grafana 没有启动成功, 删除此行,顺利启动。

August 12, 2021 · 1 min · overstarry

Nginx搭建静态图片资源服务器

Nginx搭建静态图片资源服务器 本文介绍使用 Docker Nginx 搭建静态图片资源服务器的过程和搭建中间遇到的问题。 我使用 Docker compose 搭建静态图片资源服务器, 我使用的 compose 文件内容如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 version: '3.1' services: nginx: restart: always image: nginx container_name: asset ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./uploads:/usr/share/nginx/uploads - ./conf.d:/etc/nginx/conf.d /srv/msg/storage/uploads:/usr/share/nginx/uploads 将本地的图片文件夹挂载到容器内的 /usr/share/nginx/uploads 文件夹 nginx.conf 是 Nginx 的主配置文件, conf.d 是各个网站配置的文件夹。 我的 nginx....

August 6, 2021 · 2 min · overstarry

Traefik入门使用

Traefik 入门使用 简介 Traefik(发音为traffic)是一个现代HTTP反向代理和负载均衡设施,使部署微服务变得容易。Traefik与你现有的基础设施组件(Docker、Swarm模式、Kubernetes、Consul、Etcd、…)集成,并自动和动态地配置自己。将Traefik 指向你的基础设施组件应该是你唯一需要的配置步骤。 快速入门 在这里我使用 Docker 来快速使用 Traefik 。 先创建一个 docker-compose.yml 文件,写入如下内容: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 version: '3' services: reverse-proxy: # 使用的 traefik2.4 Docker镜像版本 image: traefik:v2.4 # 通过命令行参数启动 traefik,启用不安全模式以使用dashboard,配置发现使用了docker command: --api.insecure=true --providers.docker ports: # The HTTP port - "80:80" # dashboard端口 - "8080:8080" volumes: # 监听docker事件 - /var/run/docker....

August 6, 2021 · 3 min · overstarry

Gitlab CI构建docker镜像

Gitlab CI构建docker镜像 利用Gitlab CI结合Docker构建docker镜像主要有三种方法. 将 Docker 执行器与 Docker 镜像一起使用. 使用 shell 执行器 Docker socket 绑定 现在来讲讲我的具体使用过程和遇到的一些问题,由于我的gitlab-runners使用了docker执行器,所以我主要使用了1和3两种方法。 由于网上的相关文章主要是采用 Docker in Docker 的方式,所以最开始我也是采用这种方式。 我的ci脚本是: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 services: - docker:dind variables: OUTPUT_NAME: bot DOCKER_HOST: tcp://localhost:2375 DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" build_docker_image_and_push_to_nexus: stage: build image: docker:stable extends: .go-cache script: - docker info - docker build -t docker....

July 22, 2021 · 2 min · overstarry