我在我的localhost上运行mysql我可以通过运行来连接它:
mysql -h 127.0.0.1 -P 3306 -u root -p
Run Code Online (Sandbox Code Playgroud)
我还用命令运行了docker container:
docker run -tid -v $(pwd):/code -p 3306:3306 -p 5000:5000 --name container container
Run Code Online (Sandbox Code Playgroud)
我想从docker容器访问我的Mysql数据库.所以我也从docker容器中输入:
mysql -h 127.0.0.1 -P 3306 -u root -p
Run Code Online (Sandbox Code Playgroud)
但它给了我错误:
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?端口似乎是正确的.
编辑1ifconfig泊坞窗
输出:
eth0 Link encap:Ethernet HWaddr 02:42:ac:11:00:02
inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1780 errors:0 dropped:0 overruns:0 frame:0
TX packets:977 errors:0 dropped:0 overruns:0 carrier:0 …Run Code Online (Sandbox Code Playgroud) 因此,经过数小时的谷歌搜索,没有找到正确的答案。我已经开始使用 Docker 和 Laravel 的风帆为 Windows 安装 Laravel 8.x 教程。
现在我想使用 Xdebug 并且完全不知道该怎么做。
在项目的根目录中有一个 docker-compose.yml (这是默认值)
# For more information: https://laravel.com/docs/sail
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
PHP_IDE_CONFIG: 'serverName=localhost'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
- redis
# - selenium
# selenium:
# image: 'selenium/standalone-chrome'
# volumes:
# - '/dev/shm:/dev/shm'
# networks:
# - sail
# depends_on:
# - laravel.test
mysql: …Run Code Online (Sandbox Code Playgroud) 我只是好奇,host.docker.internal 主机上正在运行什么?
该服务将包从 docker 容器路由到主机网络上的服务。
但它到底是什么?
我发现这不是网关。
当我在maven test本地运行时通过.但是当我在CI服务器上运行它时出现此错误.
Error Message
Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
Stacktrace
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Caused by: java.net.UnknownHostException: mysql …Run Code Online (Sandbox Code Playgroud) 我用以下命令启动我的 docker 容器:
docker run -it --expose 10001 --expose 8080 -p 10001:10001 -p 8080:8080 -p 80:80 --rm lucchi/covid90/100e
Run Code Online (Sandbox Code Playgroud)
我的 docker -ps 然后有:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1521e0c3d947 lucchi/covid90/100e "/bin/sh -c /bin/bash" 2 seconds ago Up Less than a second 0.0.0.0:80->80/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:10001->10001/tcp funny_panini
Run Code Online (Sandbox Code Playgroud)
但我无法从容器内部连接到本地主机。我试过:
curl 0.0.0.0:8080
curl 127.0.0.1:8080
curl https://localhost:8080
Run Code Online (Sandbox Code Playgroud)
但继续得到
curl: (7) Failed to connect to localhost port 8080: Connection refused
Run Code Online (Sandbox Code Playgroud)
我读到的大多数 asnwers 都是关于在运行命令中添加 -p 的,我不明白我错过了什么。
我在 docker 容器中安装了 Vim。
我想猛拉一些文本并以某种方式神奇地使其在我的主机 (macOS) 剪贴板上可用。
这甚至可能吗?
所以澄清一下,这是我的完整用例......
docker run ... 一些带有 Vim 的容器烘焙到图像中现在我不确定主机 (macOS) 必须使用 docker 生态系统提供的 VM 才能首先运行 docker(因为 macOS 不是基于 Linux 的系统,因此可以不能在没有中间虚拟机的情况下本地运行 docker 容器)。
所以我不确定将内容放入 docker 系统剪贴板的技巧是否会过滤回 VM 和实际(macOS)主机。
我见过有人建议使用 X11 并将其套接字文件安装到 docker 容器中,然后使用 xclip(或 xsel)。我试过这个,但无法让 Vim 拉入适当的寄存器,以便 xclip 获取被拉出的内容。因此,随后我不确定我尝试设置和挂载 x11 是否有效:
brew install Caskroom/cask/xquartzopen -a XQuartz-v …通过docker-compose.yml我能够运行该应用程序.现在我们要将应用程序移动到生产环境,但我们不想使用容器数据库.那么有什么方法可以将我的本地MySQL数据库与应用程序连接使用docker-compose?
我的docker-compose.yml看起来像:
version: '3'
services:
web-app:
build:
context: .
dockerfile: web-app/Dockerfile
ports:
- 8080:8080
links:
- app-db
app-db:
build:
context: .
dockerfile: app-db/Dockerfile
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=Optimize
ports:
- 3306:3306
Run Code Online (Sandbox Code Playgroud)
而不是app-db部分我只想连接到我的本地托管mysql数据库.
我使用asp.net核心构建了一个简单的api,它从sql server数据库返回一些数据.
它在VS和命令行中运行良好,但当我在我的Windows 10机器上构建并运行应用程序作为docker容器时,我调用api我一直收到此错误
System.Data.SqlClient.SqlException:连接超时已过期.在登录后阶段过去了超时时间.在等待服务器完成登录过程并响应时,连接可能已超时; 或者在尝试创建多个活动连接时可能会超时.尝试连接到此服务器所花费的时间是 - [Pre-Login] initialization = 425; 握手= 265; [登录]初始化= 5; 认证= 9; [登录后]完成= 14034; ---> System.ComponentModel.Win32Exception:未知错误258
我不太确定这告诉我什么,就好像它找不到sql server机器一样.我是否必须以1433某种方式在docker配置中或在我运行容器时暴露端口?
我在我的机器上设置了docker,还有minikube,里面有docker,所以我可能在不同的VM上运行了两个docker实例
我构建一个图像并标记它,然后将其推送到本地注册表,它成功推送,我也可以从注册表中拉出它也是当我运行curl得到标签列表我得到结果,这是我做的
1- docker build -t 127.0.0.1:5000/eliza/console:0.0.1 .
2- docker run -d -p 5000:5000 --name registry registry:2
3- docker tag a3703d02a199 127.0.0.1:5000/eliza/console:0.0.1
4- docker push 127.0.0.1:5000/eliza/console:0.0.1
5- curl -X GET http://127.0.0.1:5000/v2/eliza/console/tags/list
Run Code Online (Sandbox Code Playgroud)
以上所有步骤都运行正常,没有任何问题.
我的问题是当我运行minikube并尝试在其中的本地注册表中访问此图像
所以,当我运行下一个命令
1- sudo minikube start --insecure-registry 127.0.0.1:5000
2- eval $(minikube docker-env)
3- minikube ssh
4- curl -X GET http://127.0.0.1:5000/v2/eliza/console/tags/list
Run Code Online (Sandbox Code Playgroud)
在最后一步(第4点),它给了我下一条消息
curl:(7)无法连接到127.0.0.1端口5000:连接被拒绝
因此,我可以从我的机器访问图像注册表,但不能从minikube访问,当我在minikube上使用Kubernetes部署此图像时,我当然会遇到问题,并且由于无法连接到http://127.0.0.1:5000而导致部署失败
你能帮我配置minikube来查看我的本地注册表,这样我的问题就能解决,然后我可以成功地使用kubernetes将图像部署到minikube吗?
UPDATE
我正在使用这个yaml文件(我命名为ConsolePre.yaml)来使用kubernetes部署我的图像
apiVersion: v1
kind: Service
metadata:
name: tripbru-console
labels:
app: tripbru-console
spec:
ports:
- port: 9080
targetPort: 9080
nodePort: …Run Code Online (Sandbox Code Playgroud) 我在端口9092 上运行本地计算机上的Kafka服务器.我正在使用docker -compose在docker 容器中运行服务,需要向kafka服务器发送消息.
我尝试使用'localhost'和IP在服务代码中编写我的生产者,但两者都不起作用.
任何人都可以帮我解决这个问题吗?
docker ×10
mysql ×3
apache-kafka ×1
asp.net-core ×1
containers ×1
curl ×1
java ×1
jenkins ×1
kubernetes ×1
laravel ×1
minikube ×1
networking ×1
phpstorm ×1
spring ×1
vim ×1