
在Docker中,我们可以通过选择不同的网络来为容器提供网络连接。令人惊讶的是,即使我们从未明确设置过任何网络,Docker仍然会为容器分配默认网络。这个问题困扰着许多开发者,因为他们可能会遇到一些与网络配置相关的问题。在本文中,我们将通过php小编柚子的帮助,详细解释为什么Docker容器会有默认网络,以及如何在不同网络之间进行选择。
我在为 go 服务设置 docker 配置时遇到了麻烦。以下是我的设置概述
go_binary(
name = "main_arm64",
embed = [":server_lib"],
goarch = "arm64",
goos = "linux",
visibility = ["//visibility:public"],
)
container_image(
name = "ww_server_image",
base = "@go_image_static_arm64//image",
entrypoint = ["/main_arm64"],
files = [":main_arm64"],
ports = [
"8080",
"3306",
],
)我有一个在 http://localhost:8080 上运行的 graphql playgroud (http),尽管端口据称已公开,但我无法访问 playground ui。
我想做的是:
Redo Rescue备份和恢复可以在几分钟内备份和恢复整个系统,使用点-and-click界面,任何人都可以使用。裸机恢复到一个新的、空白的驱动器上,几分钟内即可启动和运行。支持保存和恢复到本地磁盘或共享网络驱动器。选择性地恢复分区并将其重新映射到目标驱动器上的不同位置。附带其他工具用于分区编辑、网页浏览等。从live CD/USB运行,无需安装。网站:http://redorescue.com论坛:https://sourceforge.net/p/redobackup/discussion/GitH
6
rules_docker 放在同一网络上)。docker exec -it ... /bin/bash 到我的 docker 容器中(这不起作用,因为未安装 bash,但我不知道如何通过此 container_image 命令安装 bash)
错误如下:oci runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $path: unknown
如果我获取生成的 docker 镜像 id 并运行 docker run -p 8080:8080 image_id,我可以访问 graphql playground,但无法与 mysql 容器通信
如果我按如下方式更改网络: docker run --network=host -p 8080:8080 image_id dockerized go 应用程序可以成功与 mysql 容器通信,但随后 graphql playground 变得无法访问。仅当我维护 --network=bridge 时,graphql 游乐场才可访问。我不确定为什么 mysql 也不使用 bridge ,因为我在启动它时从未指定网络。这就是我获得 mysql 容器的方式
docker run -p 3306:3306 --name my-db -e MYSQL_ROOT_PASSWORD=testing -d mysql:8.0.31
答案在这里: 无法使用 go 和 docker 连接到 mysql 服务器 - 拨号 tcp 127.0.0.1:3306: connect: 连接被拒绝
事实证明我需要使用以下地址实际访问 mysql,因为 mac 上的 docker 使用 linux vm:
docker.for.mac.localhost:3306
以上就是docker容器选择不同的网络,尽管从未设置过任何网络的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号