成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

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

DevTTL / 1006人閱讀

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

前言

之前寫(xiě)過(guò) tomcat 單機(jī)多實(shí)例,最后解決 80 端口訪(fǎng)問(wèn)用的是 iptables 轉(zhuǎn)發(fā);

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

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

# 進(jìn)入docker容器啟動(dòng)tomcat
root@40f7130d7832:/usr/local/tomcat/bin# ./startup.sh 
# get tomcat對(duì)應(yīng)java進(jìn)程:
root@40f7130d7832:/usr/local/tomcat/bin# ps -ef | grep java
# 添加kch用戶(hù)
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對(duì)應(yīng)java進(jìn)程 u+s 權(quán)限 (進(jìn)程只能是exe,不能是腳本):普通用戶(hù)訪(fǎng)問(wèn)時(shí),臨時(shí)使進(jìn)程具有root權(quán)限可以綁定80端口
root@40f7130d7832:/usr/local# chmod u+s /docker-java-home/jre/bin/java
實(shí)驗(yàn)如下

本能就用官方 tomcat7 鏡像。沒(méi)有的自行 pull 一個(gè)

docker pull tomcat:7.0

默認(rèn)是 8080 端口的,啟動(dòng)命令

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

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

啟動(dòng) 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 的進(jìn)程(exe):/docker-java-home/jre/bin/java。注:這里查詢(xún)記下來(lái)的,必須是進(jìn)程(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/

將默認(rèn)的 8080 改成 80
找到


修改為


新建 prms 用戶(hù)

對(duì)應(yīng)容器已新建 prms 用戶(hù)

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#

啟動(dòng)
發(fā)現(xiàn)可以正常啟動(dòng),但是不能訪(fǎng)問(wè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
啟動(dòng) tomcat

正常啟動(dòng),且可以訪(fǎng)問(wèn) 80 端口

通過(guò)瀏覽器http://localhost也可以訪(fǎng)問(wèn),看到tomcat首頁(yè);

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?請(qǐng)?zhí)砑渔溄用枋?/p>

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

51Reboot? K8s專(zhuān)場(chǎng)分享

時(shí)間:2019年1月4號(hào)21:00-22:00?

分享講師:GY 老師

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

參與方式:添加小助手wechat:18310139238,備注:公開(kāi)課,拉入直播分享群與老師互動(dòng)

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/33101.html

相關(guān)文章

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

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

    AnthonyHan 評(píng)論0 收藏0
  • docker入門(mén)實(shí)戰(zhàn)筆記

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

    Tecode 評(píng)論0 收藏0
  • 利用ELK搭建Docker容器化應(yīng)用日志中心

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

    周?chē)?guó)輝 評(píng)論0 收藏0
  • Docker中配置Nginx與PHP

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

    王晗 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<