我如何在两个Docker容器上使用或映射相同的端口

时间:2019-07-03 10:50:43

标签: docker

我正在docker_container_1中运行一个应用程序,其中多个端口已映射到本地。

因此,我可以从本地计算机上的docker_container_1访问该服务。

现在,我想从docker_container_1访问另一个docker_container(docker_container_2)的服务,但是由于无法映射映射到docker_container_1的端口,所以我无法创建docker_container_2。

如何从docker_1绑定到另一个docker_2的端口(例如5555)访问服务。

1 个答案:

答案 0 :(得分:0)

所以,最初我有两个docker镜像:

public class Splash extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setupWindowAnimations();
        TextView textView = findViewById(R.id.textviewmain);
        TextView textView1 = findViewById(R.id.textviewmain2);
        ImageView logo = findViewById(R.id.logo_s);
        Animation animation1 =  AnimationUtils.loadAnimation(getApplicationContext(),R.anim.fadein);
        logo.startAnimation(animation1);
        textView.startAnimation(animation1);
        textView1.startAnimation(animation1);
        Thread timer = new Thread(){

            @Override
            public void run(){
                try {
                    sleep(3000);
                    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                    startActivity(intent);
                    finish();
                    super.run();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }


            }





        };
        timer.start();
    }
    private void setupWindowAnimations() {
       Fade fade = new Fade();
        fade.setDuration(3000);
        getWindow().setExitTransition(fade);
    }
}

我为<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#092865" tools:context=".Splash" android:theme="@style/AppTheme.NoActionBar"> <ImageView android:id="@+id/splashbg" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="-315dp" android:src="@drawable/splashbg2" /> <RelativeLayout android:id="@+id/slidesplash" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_marginBottom="100dp" android:paddingBottom="5dp" android:paddingTop="5dp" android:background="@null" android:gravity="center_horizontal"> <ImageView android:id="@+id/logo_s" android:layout_width="60dp" android:layout_height="60dp" android:layout_centerVertical="true" android:contentDescription="@string/daily_highlights_dose" android:src="@drawable/icon24" android:transitionName="logo" /> <TextView android:id="@+id/textviewmain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:layout_centerVertical="true" android:layout_toEndOf="@id/logo_s" android:text="@string/sports" android:textColor="#ffffff" android:textSize="25sp" /> <TextView android:id="@+id/textviewmain2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="5dp" android:layout_centerVertical="true" android:layout_toEndOf="@+id/textviewmain" android:text="Highlights" android:textColor="#1FD883" android:textSize="27sp" /> </RelativeLayout> <!-- #f93959 --> </RelativeLayout> 图像制作了一个容器,几乎没有映射端口。

    REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
bert_client_api      latest              2fa40dd05152        17 hours ago        841MB
bert_services        latest              1695c35fde34        18 hours ago        2.74GB

所以我的运行容器为:

bert-services

[我从容器$ sudo docker run -it -v /home/jugs/Desktop/BERT-Pretrained/uncased_L-12_H-768_A-12/1/:/model/ -p 5000:5000 -p 127.0.0.1:5555:5555 -p 127.0.0.1:5556:5556 bert_services /bin/bash 中运行了托管服务

现在,如果我要从主机获得所有服务(包括容器服务),方法是使用(myenv) jugs@jugs:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES de9bb74a0e04 bert_client_api "/bin/bash" 9 minutes ago Up 9 minutes suspicious_lewin

de9bb74a0e04

现在,您有两个可以轻松通信的容器。

--net=host