Spring in Action,第六版第 96 页,docker 命令错误

问题描述 投票:0回答:2

到目前为止,我已经在我的 vs code 终端中运行了以下命令

docker network create cassandra-net
docker run --name my-cassandra --network cassandra-net -p 9042:9042 -d cassandra:latest

这本书现在要求我运行以下命令

docker run -it --network cassandra-net --rm cassandra cqlsh my-cassandra
我收到这个错误

Traceback (most recent call last):
  File "/opt/cassandra/bin/cqlsh.py", line 2402, in <module>
    main(*read_options(sys.argv[1:], os.environ))
  File "/opt/cassandra/bin/cqlsh.py", line 2344, in main
    shell = Shell(hostname,
  File "/opt/cassandra/bin/cqlsh.py", line 480, in __init__
    load_balancing_policy=WhiteListRoundRobinPolicy([self.hostname]),
  File "/opt/cassandra/bin/../lib/cassandra-driver-internal-only-3.25.0.zip/cassandra-driver-3.25.0/cassandra/policies.py", line 425, in __init__
  File "/opt/cassandra/bin/../lib/cassandra-driver-internal-only-3.25.0.zip/cassandra-driver-3.25.0/cassandra/policies.py", line 426, in <listcomp>
  File "/usr/lib/python3.10/socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):        
socket.gaierror: [Errno -2] Name or service not known

在 docker 日志中,它已达到输出的位置 “2024-04-10 06:46:40 INFO [OptionalTasks:1] 2024-04-10 12:46:40,062 CassandraRoleManager.java:354 - 创建了默认超级用户角色“cassandra”” 并且日志中没有进一步的输出,因此我假设“Cassandra 集群已完全启动”,正如书中警告的那样。

我尝试搜索此错误,并且能够找到问题的各个部分,但没有任何内容与问题完全匹配。 我搜索

File "/usr/lib/python3.10/socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):        
socket.gaierror: [Errno -2] Name or service not known

并获取一些特定于 Python 的故障排除。 我搜索了完整的错误并被定向到 github 线程 https://github.com/orgs/community/discussions/26047 但是这个线程有一些修复,假设您在 github 上托管容器,并且修复包括更新 github 上的 yml 文件。 我只是尝试运行容器并从 vscode 终端执行这些命令,尚未在 github 上托管任何内容。

我错过了什么?

docker visual-studio-code cassandra spring-data-cassandra
2个回答
0
投票

我从书上复制了这个命令 docker run -it --network cassandra-net --rm cassandra cqlsh my-cassandra

我其实是在跑步 docker run -it --network cassandra-net --rm cassandra cqlsh mycassandra


0
投票

这个错误:

socket.gaierror: [Errno -2] Name or service not known

表示 Docker 无法解析您指定的主机。

最可能的原因是您在 (a) 创建容器或 (b) 使用 cqlsh 连接时名称出现拼写错误。

检查您在所有 Docker 命令中是否一致地使用相同的容器名称,然后重试。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.