在 AWS EC2 T2.micro 实例上部署 dockerized Spring Boot 应用程序时,我遇到了“java.net.UnknownHostException:host.docker.internal:名称或服务未知”问题。由于此错误,Spring Boot 应用程序无法启动。
但奇怪的是,我没有在应用程序中的任何地方使用变量“host.docker.internal”:不在代码中,不在 yaml 文件中,不在 .env 文件中:
$ sudo grep -Rl "host.docker.internal" ~
/home/ec2-user/.bash_history
Run Code Online (Sandbox Code Playgroud)
当我运行以下命令时,它只显示上一个命令来搜索它:
$ cat /home/ec2-user/.bash_history | $ cat /home/ec2-user/.bash_history | grep“主机.docker.内部”
在本地,我使用 Windows 10 进行开发,我可以使用 docker-compose 成功启动堆栈。
以下是 EC2 实例操作系统版本信息:
$ cat /etc/*release
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
Amazon Linux release 2 (Karoo)
Run Code Online (Sandbox Code Playgroud)
这是我在 EC2 实例上使用的 docker-compose 文件:
version: '2'
services:
backend:
container_name: backend
image: 'dockerhubuser/backend:0.0.4'
ports:
- '8080:8080' …Run Code Online (Sandbox Code Playgroud)