相关疑难解决方法(0)

如何从docker容器中获取docker主机的IP地址

正如标题所说.我需要能够检索docker托管的IP地址和从主机到容器的端口映射,并在容器内部执行此操作.

ip docker

317
推荐指数
16
解决办法
30万
查看次数

如何从docker容器访问主机端口

我有一个运行jenkins的码头集装箱.作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器.有没有办法将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器?

编辑:我在Linux机器上本地运行docker.

更新:

除了下面的@larsks答案,要从主机获取主机IP的IP地址,我还会执行以下操作:

ip addr show docker0 | grep -Po 'inet \K[\d.]+'
Run Code Online (Sandbox Code Playgroud)

docker docker-container

217
推荐指数
13
解决办法
18万
查看次数

从外部连接到Docker容器中的Postgresql

我在Docker容器中的服务器上有Postgresql.如何从外部(即从我的本地计算机)连接到它?我应该采用什么设置才能允许?

postgresql remote-connection docker

153
推荐指数
12
解决办法
14万
查看次数

连接到Amazon RDS Oracle实例时,如何处理"从读取调用中减去一个"错误

我在Amazon RDS实例上运行Oracle 11GR2.我偶尔IO Error: Got minus one from a read call打电话给DriverManager.getConnection(getUrl())我,我不知道为什么.其他应用程序正常工作

为了进一步混淆事物,错误会偶尔纠正(在程序的下一次迭代之后).

我应该如何处理"从读取调用中减去一个"错误?

完整堆栈跟踪:

java.sql.SQLRecoverableException: IO Error: Got minus one from a read call
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:489)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:553)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:254)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
    at java.sql.DriverManager.getConnection(DriverManager.java:579)
    at java.sql.DriverManager.getConnection(DriverManager.java:243)
    at com.cwd.facile.db.Database.<init>(Database.java:44)
    at com.cwd.facile.ns.NetSuiteRequestBased.<init>(NetSuiteRequestBased.java:29)
    at com.cwd.facile.ns.CommonOperations.isInventoryItem(CommonOperations.java:205)
    at com.cwd.facile.ns.CommonOperations.findItemIdByName(CommonOperations.java:188)
    at com.cwd.facile.ns.CommonOperations.createSalesOrder(CommonOperations.java:970)
    at com.cwd.facile.Main.main(Main.java:47)
Caused by: oracle.net.ns.NetException: Got minus one from a read call
    at oracle.net.ns.Packet.receive(Packet.java:311)
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:300)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1140)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:340)
    ... 12 more
Run Code Online (Sandbox Code Playgroud)

Database.java第44行: setConn(DriverManager.getConnection(getUrl()));

其他信息:

  • 我认为这是一个糟糕的JDBC网址,但它确实有效,有时连续几天才会失败.
  • Amazon …

java oracle

62
推荐指数
3
解决办法
20万
查看次数

从另一个容器访问docker容器

我基于两个不同的图像创建了两个docker容器.db和另一个用于webserver.两个容器都在我的mac osx上运行.

我可以从主机访问数据库容器,同样可以从主机访问网络服务器.

但是,我如何从网络服务器访问数据库连接?

我启动db容器的方式是

docker run --name oracle-db -p 1521:1521 -p 5501:5500 oracle/database:12.1.0.2-ee
Run Code Online (Sandbox Code Playgroud)

我开始使用容器作为

docker run --name oracle-wls -p 7001:7001 wls-image:latest
Run Code Online (Sandbox Code Playgroud)

我可以通过连接访问主机上的数据库

sqlplus scott/welcome1@//localhost:1521/ORCLCDB
Run Code Online (Sandbox Code Playgroud)

我可以在主机上访问wls

http://localhost:7001/console
Run Code Online (Sandbox Code Playgroud)

docker

31
推荐指数
6
解决办法
3万
查看次数

什么是linux相当于"docker.for.mac.host.internal"

在Mac和Windows上,可以在容器内使用docker.for.mac.host.internal(替换docker.for.mac.localhost)和docker.for.win.host.internal(替换docker.for.win.localhost).

是否有一个Linux将开箱即用而不传递env变量.

docker docker-for-windows docker-for-mac docker-desktop

22
推荐指数
10
解决办法
2万
查看次数

Docker Compose 网络模式和端口绑定兼容性问题

我的 docker-compose.yml 包含以下内容:

version: '3.2'
services:
  mysql:
    image: mysql:latest
    container_name: mysql
    restart: always
    network_mode: "host"
    hostname: localhost
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
    volumes:
      - $HOME/data/datasql:/var/lib/mysql
    ports:
      - 3306:3306

  user-management-service:
    build: user-management-service/
    container_name: user-management-service
    restart: always
    depends_on:
      - mysql
      - rabbitmq
      - eureka
    network_mode: "host"
    hostname: localhost
    ports:
      - 8089:8089
Run Code Online (Sandbox Code Playgroud)

当我尝试执行 docker-compose up 时,出现以下错误:

"host" network_mode is incompatible with port_bindings
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决问题?

compatibility docker docker-compose

16
推荐指数
2
解决办法
4万
查看次数

解析ifconfig只使用Bash获取我的IP地址

我想编辑bashrc文件,以便运行一个名为"myip"的简单函数.正如您可能猜到的,函数myip只打印我机器的内部IP地址.

我工作的时候,这是脚本:

ifconfig en1 | awk '{ print $2}' | sort
Run Code Online (Sandbox Code Playgroud)

这得到了我的输出:

10.0.0.12
options=1<PERFORMNUD>
flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>
fe80::daa2:5eff:fe96:ba2f%en1
d8:a2:5e:96:ba:2f
autoselect
active
Run Code Online (Sandbox Code Playgroud)

我正在使用Mac OS X.

我怎么能这样做?

macos bash awk ifconfig

15
推荐指数
6
解决办法
4万
查看次数

从docker容器连接到远程MySQL数据库

我正在努力将一个Django 1.5.x应用程序容器化,该应用程序通过ODBC连接到单独服务器上的MySQL数据库:

[mysql_default]
database = DB_NAME
driver = /usr/lib64/libmyodbc5.so
server = REMOTE_DB_SERVER
user = DB_USER
password = DB_USER_PWD
port = 3306
Run Code Online (Sandbox Code Playgroud)

我能够通过端口转发和SSH连接到远程数据库,在我的本地机器(docker之外)上运行Django应用程序:

 ssh -L 3307:127.0.0.1:3306 MYID@REMOTE_DB_SERVER
Run Code Online (Sandbox Code Playgroud)

我使用Centos 6.x为应用程序设置了Docker容器,但无法使MySQL连接正常工作.容器安装了MySQL并运行了mysqld.

我的docker-compose.yml文件如下所示:

version: "2"
services:
  web:
    build: .
    image: MY_IMAGE
    container_name: MY_CONTAINER
    network_mode: "host"
    ports:
      - "3307:3306"
    command: /bin/bash
Run Code Online (Sandbox Code Playgroud)

在容器运行的情况下,我可以执行以下命令(在容器外部)以在远程数据库上显示数据库:

docker exec MY_CONTAINER echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3307
Run Code Online (Sandbox Code Playgroud)

但是从容器内部,同样的命令失败:

    echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3306

ERROR 2003 (HY000): Can't connect to MySQL …
Run Code Online (Sandbox Code Playgroud)

mysql odbc docker

14
推荐指数
2
解决办法
4万
查看次数

从docker容器连接到localhost上的Mysql

我在我的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)

mysql docker

13
推荐指数
1
解决办法
2万
查看次数