2017-12-13 19 views
0

보안 네트워크를 통해 Horizon 서버를 시작해야합니다. 내가 시도 README의 의사에 따라이 github의의의 repo https://github.com/stellar/docker-stellar-core-horizonletsencrypt를 사용하여 보안 서버를 통해 도킹 프로그램을 실행하는 방법은 무엇입니까?

를 사용 ,

docker run --rm -it -p "8000:8000" --name stellar stellar/quickstart --testnet 

이 HTTP 서버와 포트 8000을 통해 내 지평선 응용 프로그램을 시작합니다. https 서버를 통해 실행해야합니다. 이를 위해 나는

docker run --rm -it -p "8000:443" --name stellar stellar/quickstart --testnet 

    docker run --rm -it -p "8000:8000" --name stellar stellar/quickstart --testnet docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem 

과 같은 몇 가지를 시험해 보았습니다. nginx를 사용하여 https 호출을 서버에서 http 호출로 리디렉션하려고했으나 실패했습니다.

안전한 서버를 통해 고정 컨테이너를 시작하는 방법을 제공하십시오.

답변

0

nginx를 사용하여 도커 이미지 내에서 프록시 구성을 수행해야합니다. - : dockerfile으로

server { 
    listen    443 ssl; 
    server_name   www.example.com; 
    ssl_certificate  www.example.com.crt; 
    ssl_certificate_key www.example.com.key; 
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers   HIGH:!aNULL:!MD5; 
    ... 
} 
은 당신이 그런 다음 "443 8000"를 실행 --rm - 그것은 -p

고정 표시기로 고정 표시기를 실행 https로 일을하고 포트 443 노출 수정할 수 dockerhub에서 사용할 수 있습니다

https://hub.docker.com/r/stellar/quickstart/~/dockerfile/

+0

시도해 보았습니다. 첫 번째 포트는 도커 포트를 지정하고 두 번째 포트는 컨테이너 포트를 지정합니다. 컨테이너가 여기 위에 별 모양입니다 – NAVIN

0

당신은 어떤 dockerized 애플리케이션, 즉 웹 서버 stellar 코어 또는 경우에 HTTPS 버전을 배포 할 --testnet 별의 별/빠른 시작을 -name, 당신은 공식을 사용하여 이미지를 암호화하자.

여기에 docker-compose.yml 파일이 있습니다.이 파일을 사용하면 인증서 프로세스를 자동화하는 도커 작성기 안에 도킹 된 웹 서버를 배포 할 수 있습니다.

nginx: build: nginx-image links: - letsencrypt - app environment: - MY_DOMAIN_NAME=DOMAIN_NAME mem_limit: 2g cpu_shares: 256 # restart: always ports: - "80:80" - "443:443" volumes_from: - letsencrypt letsencrypt: image: quay.io/letsencrypt/letsencrypt:latest command: bash -c "sleep 6 && certbot certonly --standalone -d DOMAIN_NAME --text --agree-tos --email your_email --server https://acme-v01.api.letsencrypt.org/directory --rsa-key-size 4096 --verbose --renew-by-default --standalone-supported-challenges http-01" entrypoint: "" volumes: - /etc/letsencrypt - /var/lib/letsencrypt ports: - "80" - "443" environment: - TERM=xterm app: build: app-image ports: - "80"

은 서버 CNAME과 위의 파일의 이메일 ID로 도메인 이름을 바꿉니다. 이미지의 이름을 지정해야하는 앱 섹션 (별의 이미지 인 dockerized 웹 서버). 그런 다음 안전하게 실행하려면 docker-compose builddocker-compose up을 실행하십시오.

인증서를받은 후에는 here과 같이 컨테이너에 간단히 마운트 할 수있는 다른 기술이 있습니다. 또는 위의 대답에서 언급 한대로 dockerfile을 편집하여 보안 포트에서 직접 실행할 수 있습니다.

+0

Theres 도커 리포와 함께 docker-compose.yml 파일이 없습니다. 다른 프로젝트에서 보았습니다. – NAVIN

0

지금까지 내가 배운 것은 안전한 서버를 통해 도커를 실행할 수 없다는 것입니다. Docker는 서비스를 제공 할 포트를 요청합니다. 해결책은 보안이 필요한 도커를 사용하는 간단한 응용 프로그램입니다. 여기에 나는이 docker 응용 프로그램을 이해할 수 없어서 nginx를 사용했습니다.

내 nginx를 파일 내가이 짓이

server { 
 
    listen 9000 ssl; 
 
    server_name 127.0.0.1; 
 

 
ssl_certificate /etc/letsencrypt/live/staging.globalblockchain.io/fullchain.pem; # managed by Certbot 
 
ssl_certificate_key /etc/letsencrypt/live/staging.globalblockchain.io/privkey.pem; # managed by Certbot 
 

 

 
    location/{ 
 
    proxy_pass http://127.0.0.1:8000; 
 
    } 
 
}

Whai, 내 지역 8000 보안 9000을 통해 통화를 리디렉션의 nginx를 사용 다소 추천하기 추천 loocked.그래서 8000 포트 이상의 모든 콘텐츠는 보안 9000 이상에서 사용할 수 있었고 UI는이 보안 9000을 사용할 수있었습니다.