V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yinmin  ›  全部回复第 92 页 / 共 97 页
回复总数  1926
1 ... 84  85  86  87  88  89  90  91  92  93 ... 97  
2023-03-30 17:53:00 +08:00
回复了 raw0xff 创建的主题 Docker 当 docker-compose 的主机 ports 是区间时, up 起来就很慢,求解
另外,启动 1 个容器大概需要 0.2 秒~0.5 秒,你使用 scale 同时启动 20 个容器,慢一点是正常的。
2023-03-30 17:47:43 +08:00
回复了 ly879 创建的主题 问与答 基于 Docker 开发环境的疑问
问题 1:两者都 OK ,根据自己习惯就好。我通常是先启动配置环境成功后,再根据配置过程写 Dockerfile ,用 Dockerfile 生成镜像的。如果配置过程比较复杂,Dockerfile 很难写,就直接导出保存镜像。

问题 2:我是使用 hyper-v + debian 11 + Docker CE + Portainer ,与 linux 生产环境更接近,还有就是用不惯 Docker Desktop ,Docker CE+Portainer 更佳。萝卜青菜各有所爱,自己用顺即可。
2023-03-30 17:26:05 +08:00
回复了 raw0xff 创建的主题 Docker 当 docker-compose 的主机 ports 是区间时, up 起来就很慢,求解
我不清楚你 node 里跑什么应用。从原理上,起多个容器是为了在宿主机上运行多个进程跑并发。有些软件有 workers 概念,在一个容器里启动多个进程跑并发。例如:Flask 的 Gunicorn 的 workers 参数。

是不是可以换一个思路,在一个容器里启动多个 workers ,而不是使用 scale 方式启用多个容器?
“函数拟合和逼近”->“理解与推理”->“自主意识”的关系,就像“化学反应”->“生物”->“人类”的关系吧。

GPT 过奇点了。以下问题是我自己编的,非网络已有问题,从回答上可以感知到 AI 理解和推理能力。

如果 AI 进化到有自己的三观,“理解与推理”就进化到了“自主意识”了。

======================

问:小明每次做作业的时候,就想玩手机,做作业越来越马虎,期末考试不及格;小王考试前 1 天晚上突然发高烧,考试没精神,期末考试也不及格。小明和小王哪一个属于黑天鹅事件,哪一个属于灰犀牛事件?

答:根据黑天鹅事件和灰犀牛事件的定义,可以分析:

小明属于灰犀牛事件。因为他的行为模式是可以预见的,每次做作业都想玩手机,而且成绩越来越差,所以他的成绩不及格是可以预见的,也可以采取措施来避免。这是一种慢性问题,可能需要长期关注和解决。

小王属于黑天鹅事件。因为他突然发高烧,导致考试状态不佳,这是无法预见的不可控事件。尽管小王可以事先采取保健措施,但高烧这种突发情况本身是不可预测的。

因此,小明属于灰犀牛事件,而小王属于黑天鹅事件。

======================

问:张三下课撞了李四,李四想到昨天张三要抄自己的作业没答应,认为张三是有意要撞自己; 李四将这件事情告诉了王五,王五说没有发现确凿证据,所以他认为张三是不小心撞到李四的。李四和王五哪个人是阴谋论,哪个人用了奥卡姆剃刀法?

答:根据所提供的信息,李四认为张三是有意要撞自己,这表明李四是倾向于阴谋论的一方。相反,王五则使用了奥卡姆剃刀法,因为他只根据现有证据做出了一个更简单和更直观的解释,即张三不小心撞到了李四。

======================
2023-03-29 21:07:02 +08:00
回复了 raw0xff 创建的主题 Docker 当 docker-compose 的主机 ports 是区间时, up 起来就很慢,求解
node 容器是给其它容器使用的吧?

docker 同一个虚拟内网里的容器可以相互直接访问,无需 port 。

新建一个虚拟内网,把 node 及相关容器都放这个内网里,你就可以把 node 容器里的 ports 参数删除掉,启动速度就快了。
最佳实践是容器里都用 root 。Docker 会限制容器不越界的。

当然,由于某种原因,容器里不用 root ,而是用特定 user ,你要先了解 linux 文件权限的底层逻辑 uid 和 gid 。

文件 /目录的权限是保存 uid(用户编号)、gid(组编号),然后查询 linux 的用户对应表、组对应表显示用户名和组名的。

例如:宿主机器里 docker 用户的 uid=1001 、gid=1001 ;容器里 containeruser 用户的 uid=1001 、gid=1001 。在容器里使用 containeruser 生成文件,文件权限标记为 uid=1001 、gid=1001 ,你在宿主机器里看到这个文件的所有者就是 docker:docker

理解这个底层逻辑后,你就可以配置特定用户了。

先在宿主机器用命令查询 docker 用户的 uid 和 gid:
id docker

在容器的 Dockerfile 里,根据 uid 和 gid 创建用户 /组,然后用这个用户去操作文件即可。Dockerfile 的指令是:
RUN groupadd --gid <gid> containeruser \
&& useradd --uid <uid> -g containeruser --create-home containeruser
USER containeruser
2023-03-29 18:33:04 +08:00
回复了 venompool88 创建的主题 Bing 手机 bing 老是自动切换到国区
@venompool88 国产应用商店的 bing 版本比 google play 的 bing 版本要高,看你的界面图,应该是被国产应用商店里的 bing 替换了。你在国产应用商店忽略 bing 更新即可。
2023-03-29 09:55:10 +08:00
回复了 mingge2333 创建的主题 程序员 etcd 使用 docker 部署为什么可以使用域名
在业务系统部署中,例如有 5 个容器:nginx 容器、web 业务系统容器、管理平台容器、mysql 容器、redis 容器。

web 业务系统容器和管理平台容器会经常更新,在更新管理平台容器时,肯定不希望影响 web 业务系统容器。redis 容器通常也不重启。

因此,5 个容器通常分多个 yaml 文件分别管理的,如果容器之间使用域名方式访问,可能会出现问题(先启动的容器没法解析后启动容器的 ip 地址),容器使用固定 ip 地址稳定性更佳。
2023-03-29 01:00:55 +08:00
回复了 mingge2333 创建的主题 程序员 etcd 使用 docker 部署为什么可以使用域名
@mingge2333 我发现 https://github.com/apache/apisix-docker/blob/master/example/docker-compose.yml 的 port 参数可能写的有问题。内网之间容器是可以直接访问的,不需要 port 抛出端口。

这个 yml 示例里,只需要将给外部访问的 web 容器端口通过 port 抛出即可,内部使用的容器不需要 port ,否则会有安全隐患的。
2023-03-29 00:53:04 +08:00
回复了 mingge2333 创建的主题 程序员 etcd 使用 docker 部署为什么可以使用域名
@mingge2333 容器名是在 yaml 里通过 container_name: <name>指定的,只有未指定名称时,docker 才随机生成。我看了 docker-compose.yml ,在这个示例里没有设置 container_name ,etcd 应该是 service name 。

设定 container_name 的好处是:查看容器列表时,知道每个容器都是啥内容。
不设定 container_name 的好处是:如果你要启用多套容器组,不会有名称冲突。

我测试了,通过 service name 和 container name 都能做 DNS 解析。
2023-03-29 00:35:29 +08:00
回复了 mingge2333 创建的主题 程序员 etcd 使用 docker 部署为什么可以使用域名
@archean 的确可以通过 depends on(link)方式指定容器的启动次序,但是如果存在嵌套引用 (a->b, b->c, c->a),就没办法写 link 关系了。使用 ip 地址更接近于物理机的部署方式,以前我们使用域名(容器名)部署,但运行一段时间后,我们重新规划了虚拟网络,并把域名都改成固定 ip 地址访问了,这样更稳定些吧。
2023-03-28 16:11:27 +08:00
回复了 mingge2333 创建的主题 程序员 etcd 使用 docker 部署为什么可以使用域名
docker 部署一个系统,包含多个容器。我推荐:创建一个虚拟内网,然后每个容器都配置固定 IP 地址,不需要 docker 解析 DNS ,系统更稳定。

例如,nginx 容器使用域名(容器名)proxy 后端程序容器。如果 nginx 先启动,后端程序容器后启动,nginx 会发现域名无法解析而报错,如果都使用 ip 地址,就没这个问题了。
2023-03-28 15:59:57 +08:00
回复了 Allonsy 创建的主题 Python Python 进阶疑惑
Effective Python: 编写高质量 Python 代码的 90 个有效方法(第二版)
2023-03-28 14:03:58 +08:00
回复了 rimutuyuan 创建的主题 分享发现 我的 ChatGPT 小程序被封禁了
这是国家的《互联网信息服务深度合成管理规定》,你的小程序必须符合第二章第七条、第九条、第十条等规定。第二章第十三条对微信平台也有合规要求的。

http://www.gov.cn/zhengce/zhengceku/2022-12/12/content_5731431.htm

用 chatgtp 做接入,应该很难合规。
edge 边栏的小浏览器是不支持插件的。正解:换 ip/节点 或者 套 cf warp
2023-03-27 17:52:39 +08:00
回复了 tlerbao 创建的主题 程序员 一般开源系统演示站点禁止修改演示数据都是怎么实现的?
做演示系统,重置数据库最方便的方式是用 docker 。

例如,你使用的是 mysql 数据库,你先从官方镜像创建一个 mysql 容器模版,数据目录留在容器里,不要 volume 到主机;然后把演示数据导入 mysql ;然后用容器模版生成新镜像。

从这个新镜像创建新的数据库容器给演示系统使用,定期(例如 2 小时) recreate 这个数据库容器,recreate 一般只需要几百毫秒,非常快。也可以创建多个数据库容器副本给不同的客户。

演示系统的程序部分也可以使用类似的方式用 docker 部署。
2023-03-27 17:33:56 +08:00
回复了 tlerbao 创建的主题 程序员 一般开源系统演示站点禁止修改演示数据都是怎么实现的?
最简单的方法,软件部署到 docker 里,然后 2 小时 recreate 一下
1 ... 84  85  86  87  88  89  90  91  92  93 ... 97  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1285 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 23:54 · PVG 07:54 · LAX 15:54 · JFK 18:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.