찾다

 >  Q&A  >  본문

使用Docker部署java web应用

假设我们我需要的组件有:nginx tomcat webapp redis

我们的操作系统是debain

nginx是一个容器
tomcat webapp是一个容器
redis一个容器
....
然后把这些容器整合,完成部署

疑惑的是端口之间如何访问?数据库文件在哪?各容器之间文件是否可以共享?

没有使用过Docker 不知道思想是否正确,求各位大侠解惑

阿神阿神2770일 전575

모든 응답(4)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-24 09:14:08

    1. Docker를 가상 머신으로 사용할 수 있으므로 최소한 사용에 따른 학습 비용은 없습니다. Docker가 자동으로 구성할 수 있도록 가상 머신의 일부 작업 단계를 Dockerfile에 작성하여 더 명확하고 명확하게 만드는 것입니다. 그러나 일부 작업 및 구성 단계는 일반 설치에서 구현하기 어려울 수 있습니다. Docker 허브에서 다른 사람의 작성 방법을 배워야 합니다.
    이런 방식으로 포트 간 액세스 및 파일 공유는 문제가 되지 않습니다. 데이터베이스 파일을 컨테이너에 배치하거나 VOLUME을 통해 로컬 파일 시스템에서 컨테이너로 마운트할 수 있습니다.
    2. docker를 사용하여 마이크로서비스를 구축합니다. 이는 마이크로서비스를 여러 컨테이너로 나누어 대규모 서비스의 내부 서비스를 구성하는 것을 의미합니다. 이 경우 컨테이너를 지정하기 위해 실행할 때 --link 매개변수를 지정하여 포트 간 액세스를 지정할 수 있습니다. 컨테이너 파일에 -v(--volume)를 지정하여 데이터베이스 파일을 로컬 디렉터리에서 컨테이너로 마운트할 수 있습니다. 컨테이너 간 공유는 폴더를 VOLUME으로 지정하여 수행할 수 있습니다. 본질적으로 로컬 파일 시스템의 디렉터리를 여러 컨테이너에 마운트하는 것입니다.
    3. 실제로 마이크로서비스를 사용하려면 다양한 구성 요소를 관리하는 데 도움이 되는 docker-compose 기술을 이해해야 합니다. yml 파일에 컨테이너의 실행 구성만 작성하면 됩니다.

    회신하다
    0
  • 迷茫

    迷茫2017-04-24 09:14:08

    내 것은 mysql tomcat fastdfs입니다.
    mysql은 -p를 사용하여 3306 포트를 매핑합니다.
    tomcat 8080 fastdfs가 8081로 변경되었습니다.
    호스트 IP는 10.0.15.4
    따라서 tomcat의 구성은 프로젝트는 10.0 .15.4 / 3306 / 8081
    에 연결하는 것입니다. 그러면 iptables는 dokcer 컨테이너 네트워크 세그먼트를 열어 호스트

    에 액세스합니다.

    nginx가 있다면 nginx에 있는 tomcat의 8080으로 직접 전달하세요

    회신하다
    0
  • 阿神

    阿神2017-04-24 09:14:08

    docker-compose, docker 서비스 오케스트레이션

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-24 09:14:08

    사용하는 모든 구성 요소가 애플리케이션을 제공하는 경우 공식적으로 제공되는 Compose와 같은 Docker 오케스트레이션 도구를 사용하는 것이 좋습니다.
    컨테이너 간 파일과 데이터는 데이터 볼륨을 마운트하여 공유할 수 있습니다.
    컨테이너 간 연결에 가장 편리한 방법은 두 컨테이너 간에 전용 채널을 설정하는 링크 매개변수를 통해 연결하는 것입니다. 외부 세계에 데이터 포트를 개방함으로써 발생하는 보안 위험을 제거합니다.
    하고 싶다면 가장 기본적인 것을 먼저 익히는 것이 좋습니다.

    회신하다
    0
  • 취소회신하다