国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Docker 快速驗證:不轉(zhuǎn)發(fā)讓 Tomcat 綁定 80 端口

AnthonyHan / 1714人閱讀

摘要:重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪問。方案稍后整理發(fā)布。第三輪投產(chǎn)時,通過和一線溝通,得知客戶這邊的策略是生產(chǎn)一律關(guān)閉防火墻。不過對于端口的綁定,被真實商業(yè)環(huán)境折磨許久,研究分析實現(xiàn)了種種可能。

前言

之前寫過 tomcat 單機多實例,最后解決 80 端口訪問用的是 iptables 轉(zhuǎn)發(fā);

第三輪投產(chǎn)前,客戶做了遷移和擴容。重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪問 80。后來我還發(fā)現(xiàn)是徹底關(guān)閉了防火墻。后來經(jīng)研究,通過打開防火墻,配置自定義防火墻函數(shù)保存iptables策略,解決了 iptables 轉(zhuǎn)發(fā)重啟失效的問題;方案也提交了客戶。方案稍后整理發(fā)布。

第三輪投產(chǎn)時,通過和一線溝通,得知客戶這邊的策略是生產(chǎn)一律關(guān)閉防火墻。so strange!但是,還得想辦法不是?總不能說這個系統(tǒng)必須得開防火墻吧?通過研究實驗和請教大神,最終搞定。整理如下。

# 進入docker容器啟動tomcat
root@40f7130d7832:/usr/local/tomcat/bin# ./startup.sh 
# get tomcat對應java進程:
root@40f7130d7832:/usr/local/tomcat/bin# ps -ef | grep java
# 添加kch用戶
root@40f7130d7832:/usr/local# # groupadd kch && useradd -d /kch -g kch -m kch && passwd kch
# 更改tomcat屬主為kch
root@40f7130d7832:/usr/local# chown -R kch.kch tomcat
# 賦予 tomcat對應java進程 u+s 權(quán)限 (進程只能是exe,不能是腳本):普通用戶訪問時,臨時使進程具有root權(quán)限可以綁定80端口
root@40f7130d7832:/usr/local# chmod u+s /docker-java-home/jre/bin/java
實驗如下

本能就用官方 tomcat7 鏡像。沒有的自行 pull 一個

docker pull tomcat:7.0

默認是 8080 端口的,啟動命令

docker run --name w1 -it -p 8080:8080  tomcat:7.0 /bin/bash

這里我們需要綁定 80 端口,所以啟動命令見下文,且需要修訂 server.xml,把 tomcat 的端口由 8080 改為 80;

啟動 Tomcat 鏡像
ChinaDreams:workspace kangcunhua$ docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
....
tomcat                              7.0                 3402a4bb8ae6        4 months ago        357MB
....
ChinaDreams:workspace kangcunhua$ docker run --name www -it -p 80:80  tomcat:7.0 /bin/bash
root@40f7130d7832:/usr/local/tomcat# cd bin
root@40f7130d7832:/usr/local/tomcat/bin# ./startup.sh
root@40f7130d7832:/usr/local/tomcat/bin# ps -ef | grep java
root        12     1 37 15:12 pts/0    00:00:05 /docker-java-home/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root        56     1  0 15:12 pts/0    00:00:00 grep java
root@40f7130d7832:/usr/local/tomcat/bin# curl localhost:8080

...
root@40f7130d7832:/usr/local/tomcat/bin#

get 到 tomcat 的進程(exe):/docker-java-home/jre/bin/java。注:這里查詢記下來的,必須是進程(exe),不能是腳本。后續(xù)有用;

修改 server.xml
ChinaDreams:workspace kangcunhua$ docker cp www:/usr/local/tomcat/conf/server.xml .
ChinaDreams:workspace kangcunhua$ vi server.xml 
ChinaDreams:workspace kangcunhua$ docker cp server.xml www:/usr/local/tomcat/conf/

將默認的 8080 改成 80
找到


修改為


新建 prms 用戶

對應容器已新建 prms 用戶

root@40f7130d7832:/usr/local# # groupadd kch && useradd -d /kch -g kch -m kch
root@40f7130d7832:/usr/local# # passwd kch
更改 tomcat 屬主
root@40f7130d7832:/usr/local# ls -la
drwxr-sr-x 14 root staff 4096 Dec 18 15:12 tomcat
root@40f7130d7832:/usr/local# chown -R kch.kch tomcat
root@40f7130d7832:/usr/local# ls -la
drwxr-sr-x 20 kch  kch   4096 Dec 18 15:22 tomcat
root@40f7130d7832:/usr/local#

啟動
發(fā)現(xiàn)可以正常啟動,但是不能訪問80端口;

$ ./startup.sh
...
Tomcat started.
$ curl localhost
curl: (7) Failed to connect to localhost port 80: Connection refused
$ ./shutdown.sh
修訂 java 的屬主
root@40f7130d7832:/usr/local# ls -la /docker-java-home/jre/bin/java
-rwxr-xr-x 1 root root 6408 May 19  2017 /docker-java-home/jre/bin/java
root@40f7130d7832:/usr/local# chmod u+s /docker-java-home/jre/bin/java
root@40f7130d7832:/usr/local# ls -la /docker-java-home/jre/bin/java
-rwsr-xr-x 1 root root 6408 May 19  2017 /docker-java-home/jre/bin/java
啟動 tomcat

正常啟動,且可以訪問 80 端口

通過瀏覽器http://localhost也可以訪問,看到tomcat首頁;

root@40f7130d7832:/usr/local# su kch
$ ./startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /docker-java-home/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
$ curl localhost


...
$
收尾 提交鏡像
docker commit www tomcat-bind80:7.0
提交 dockerhub
ChinaDreams:workspace kangcunhua$ docker images
REPOSITORY                                  TAG                 IMAGE ID            CREATED             SIZE
tomcat-bind80                               7.0                 c6e1013adaf9        6 seconds ago       374MB
ChinaDreams:workspace kangcunhua$ docker tag c6e1013adaf9 aninputforce/tomcat7-bind80:latest
ChinaDreams:workspace kangcunhua$ docker images
REPOSITORY                                  TAG                 IMAGE ID            CREATED             SIZE
tomcat-bind80                               7.0                 c6e1013adaf9        2 minutes ago       374MB
aninputforce/tomcat7-bind80                 latest              c6e1013adaf9        2 minutes ago       374MB
ChinaDreams:workspace kangcunhua$ docker push aninputforce/tomcat7-bind80
使用鏡像
ChinaDreams:workspace kangcunhua$ docker pull aninputforce/tomcat7-bind80
ChinaDreams:workspace kangcunhua$ docker run --name www -it -p 80:80 aninputforce/tomcat7-bind80 /bin/bash
root@ff63d8ac4776:/usr/local/tomcat# su kch
$ pwd
/usr/local/tomcat
$ cd bin
$ ./startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /docker-java-home/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
$ curl localhost


....
參考鏈接

Is there a way for non-root processes to bind to “privileged” ports on Linux?請?zhí)砑渔溄用枋?/p>

Bye
這幾篇筆記寫完。對linux的認識更加深刻了。不過對于80端口的綁定,被真實商業(yè)環(huán)境折磨許久,研究分析實現(xiàn)了種種可能。后續(xù)或許會追加筆記為“茴香豆系列” :)

51Reboot? K8s專場分享

時間:2019年1月4號21:00-22:00?

分享講師:GY 老師

?10年一線軟件開發(fā)經(jīng)驗,先后經(jīng)歷了傳統(tǒng)安全公司,以及多家互聯(lián)網(wǎng)公司;在安全開發(fā)方面,曾開發(fā)過 Linux 防火墻、web 應用防火墻、Linux 安全內(nèi)核加固,基于大流量的 Web 安全威脅分析等項目;在互聯(lián)網(wǎng)公司工作時,曾基于 DPDK 高性能網(wǎng)絡開發(fā)框架開發(fā)過基于全流量的網(wǎng)絡流量分析平臺和基于 Sflow 網(wǎng)絡流量分析平臺,基于 Golang 開發(fā) SmartDNS 等;開發(fā)語言也是從C -> python -> golang 的轉(zhuǎn)變過程?現(xiàn)從事基于 K8S 和 Docker在私有云平臺建設方面的研發(fā)工作;具備豐富的Linux系統(tǒng)開發(fā)經(jīng)驗、網(wǎng)絡開發(fā)經(jīng)驗以及項目管理經(jīng)驗;目前開發(fā)工作 90+% 都在用 Golang,Golang 是一門簡潔、高效、強大且靈活的編程語言。

參與方式:添加小助手wechat:18310139238,備注:公開課,拉入直播分享群與老師互動

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/27669.html

相關(guān)文章

  • Docker 快速驗證轉(zhuǎn)發(fā) Tomcat 綁定 80 端口

    摘要:重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)命令后仍舊不能訪問。方案稍后整理發(fā)布。第三輪投產(chǎn)時,通過和一線溝通,得知客戶這邊的策略是生產(chǎn)一律關(guān)閉防火墻。不過對于端口的綁定,被真實商業(yè)環(huán)境折磨許久,研究分析實現(xiàn)了種種可能。 前言 之前寫過 tomcat 單機多實例,最后解決 80 端口訪問用的是 iptables 轉(zhuǎn)發(fā); 第三輪投產(chǎn)前,客戶做了遷移和擴容。重啟后,不但轉(zhuǎn)發(fā)策略失效,重新執(zhí)行轉(zhuǎn)發(fā)...

    DevTTL 評論0 收藏0
  • docker入門實戰(zhàn)筆記

    摘要:創(chuàng)建用戶組并添加用戶。默認情況下是過濾掉所有的入站規(guī)則。初始命令表示一旦容器啟動,需要運行的命令,此時使用,表示什么也不做,只需進入命令行即可。1.什么是docker  docker翻譯為搬運工,在這里應該可以理解為搬運應用的工具,也就是云.先了解其運用場景之后更容易對他形成深刻理解.  Docker提供了一種可移植的配置標準化機制,允許你一致性地在不同的機器上運行同一個Container;...

    Tecode 評論0 收藏0
  • 利用ELK搭建Docker容器化應用日志中心

    摘要:概述應用一旦容器化以后,需要考慮的就是如何采集位于容器中的應用程序的打印日志供運維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應用程序的打印日志供運維分析。典型的比如 SpringBoot應用的日志 收集。本文即將闡述如何利...

    周國輝 評論0 收藏0
  • Docker中配置Nginx與PHP

    摘要:后臺運行容器后面的那個就是鏡像的名稱了啟動配置的配置文件下面貼出我的配置這個我在主機的文件中配置的指向,其實就是訪問的本機端口。 最近在學docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒有太多的參考性,所以決定自己寫一篇,分享一下其中的經(jīng)驗。 版本說明 docker: Version 17...

    王晗 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<