V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yinmin  ›  全部回复第 95 页 / 共 100 页
回复总数  1981
1 ... 87  88  89  90  91  92  93  94  95  96 ... 100  
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 一下
2023-03-26 21:15:40 +08:00
回复了 Richard14 创建的主题 Python 使用 Python 连接 Redis,想用自签证书启用 tls 协议报错
这个错误是指 redis 服务器的证书配置有问题。你用 ca 再做一套新的 server.crt 和 server.key 。

启动 redis 服务器用下面这个参数:
redis-server --tls-port 6666 --port 0 --tls-cert-file ./server.crt --tls-key-file ./server.key --tls-ca-cert-file ./ca.crt

客户端用这个测试命令:
redis-cli --tls -p 6666 --cert ./client.crt --key ./client.key --cacert ./ca.crt
2023-03-25 20:13:37 +08:00
回复了 xinyana 创建的主题 问与答 安卓有没有全局拦截网址的 app 啊
冲浪板加规则
2023-03-25 20:05:50 +08:00
回复了 Richard14 创建的主题 Python 使用 Python 连接 Redis,想用自签证书启用 tls 协议报错
你要用 ca 再做一套 client.crt 和 client.key ,redis-cli 使用 client.crt 、client.key 、ca.crt 这 3 个文件
二战的时候,英国人破译德国人密码,就是利用了信息头部和信息结尾内容相同的特点,降低了破解难度。因此,理论上,获取 ABCDE 后破解难度会下降。

可是,AES 不是二战时的加密算法。攻击者获取 ABCDE 后,破解难度的下降程度忽略不计。也许同一个超大文件被不同 AES 密钥加密后,被获取数亿~数百亿次,类似这种规模才有研究讨论的意义。
1 ... 87  88  89  90  91  92  93  94  95  96 ... 100  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2453 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
Developed with CodeLauncher
♥ Do have faith in what you're doing.