首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置固定ip地址的集装箱使用码头-组合?

问如何设置固定ip地址的集装箱使用码头-组合?
EN

Stack Overflow用户
提问于 2016-07-28 13:02:33
回答 1查看 1.5K关注 0票数 2

问题

我正在将我的java程序连接到mysql,但是每次mysql容器的ip入口都会不断变化。如果它改变了,我必须更新我的java程序中的ip地址以建立连接(我已经在java程序中提到了172.17.0.2作为mysql容器ip)。

下面的是我的简单jdbc java程序

代码语言:javascript
复制
import java.sql.*;
import java.sql.Connection;
import java.lang.*;

public class Sample
{
    public static void main(String[] args)
    {
        Connection conn = null;
        Statement stmt = null;

        String sql= "select * from student1;";    //insert into student1 values(2,'kalam'); 
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
        }
        catch(ClassNotFoundException e)
        {
            System.out.println(e);
        } 

        try{
            conn = DriverManager.getConnection("jdbc:mysql://172.17.0.2:3306/university", "root", "root");
            stmt = conn.createStatement();

            //stmt.execute(sql);
            ResultSet rs= stmt.executeQuery(sql);
            while(rs.next())
            {
                System.out.println(rs.getInt(1)+" "+rs.getString(2)); 
            }
            System.out.println("value inserted");

        }
        catch(Exception e)
        {
            System.out.println(e+"driver man");
        }
        finally
        { 
            try{
                if(stmt!=null)
                    stmt.close();

                if(conn!=null)
                    conn.close();
            }
            catch(SQLException e)
            {
                System.out.println(" conn problem");
                e.printStackTrace();
            }    
        }
    }
}

下面的是我的对接者-撰写

代码语言:javascript
复制
 mysql:
   image: mysqlrep
   container_name: mysqlcompose
   environment:
      - MYSQL_ROOT_PASSWORD= root
   ports:
      - "0.0.0.0:3306:3306"
   command: bash -c "/etc/init.d/mysql start && cd /var/lib/mysql && mysql -u root && sleep 10"

java:
   image: java:9
   container_name: javacompose
   links:
      - mysql
   command: bash -c "javac /compose/Sample.java && java -cp "./compose:./compose/mysql-connector-java-5.1.5-bin.jar" Sample"
   volumes: 
      - ~/compose:/compose

我正在使用自己的映像(我使用包含- mysql-server的dockerfile构建mysqlrep映像,并创建了我的数据库大学,名为student1,通过my.sql文件将值插入到数据库中)。

现在我必须为mysql容器设置固定的ip地址,以便我可以在我的java程序中提供连接(bcz,它将任务减少到我的客户端)。我怎么设置它呢?

注:

  • 我正在使用windows 7上的Docker工具箱
  • 码头版本:
代码语言:javascript
复制
- client version: 1.11.1, Os/Arch: windows/amd64
- server version: 1.11.2, Os/Arch: linux/amd64

​

  • 码头工人-撰写版本: 1.7.1

请建议..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-28 22:26:56

您可以使用容器别名mysql形成来自java容器的连接url。

代码语言:javascript
复制
DriverManager.getConnection("jdbc:mysql://mysql:3306/university", ...
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38637207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档