1. 程式人生 > 其它 >Docker內安裝Nginx和Tomcat

Docker內安裝Nginx和Tomcat

一)部署Nginx

1.搜尋映象:docker search nginx
2.下載映象:docker pull nginx 建議下載映象前先去dockerhub搜尋映象版本、還能看見幫助文件及詳細資訊
3.檢視容器映象:docker images
4.介面暴露的原理
這裡對正向代理和反向代理做一個小的概括
正向代理和反向代理的區別在於代理的物件不一樣、正向代理的代理物件是客戶端、反向代理的代理物件是服務端。
代理伺服器站在客戶端那邊就是正向代理
代理伺服器站在伺服器那邊就是反向代理
Nginx通過proxy_pass可以設定代理服務


5.啟動Nginx
[root@xiaozhang1999 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 2c9028880e58 5 weeks ago 447MB
mysql latest c0cdc95609f1 5 weeks ago 556MB
hello-world latest d1165f221234 3 months ago 13.3kB
latest latest f6d0b4767a6c 5 months ago 133MB
nginx latest f6d0b4767a6c 5 months ago 133MB
centos latest 300e315adb2f 6 months ago 209MB

登入Nginx

-d 後臺執行

-p 宿主機埠(EG:阿里雲伺服器):容器(EG:Nginx)埠、暴露埠

--name 給(Nginx)容器命名 docker run -d --name nginx01 -p 3344:80 nginx

[root@xiaozhang1999 ~]# docker run -d -p 3344:80 nginx
d0ceb7c4b4191caf174cd73eb269c7824a245b6ac3f9642aa6aed0e9a84603a2
[root@xiaozhang1999 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d0ceb7c4b419 nginx "/docker-entrypoint.…" 15 seconds ago Up 13 seconds 0.0.0.0:3344->80/tcp, :::3344->80/tcp exciting_sammet

訪問本地Nginx

[root@xiaozhang1999 ~]# curl localhost:3344

Welcome to nginx!

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to

nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

# 編輯Nginx配置檔案 [root@xiaozhang1999 ~]# docker exec -it exciting_sammet /bin/bash # 確定Nignx安裝目錄 root@d0ceb7c4b419:/# whereis nginx nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx root@d0ceb7c4b419:/# cd /etc/nginx root@d0ceb7c4b419:/etc/nginx# exit exit [root@xiaozhang1999 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0ceb7c4b419 nginx "/docker-entrypoint.…" 28 minutes ago Up 28 minutes 0.0.0.0:3344->80/tcp, :::3344->80/tcp exciting_sammet # 停止Nginx容器 [root@xiaozhang1999 ~]# docker stop exciting_sammet exciting_sammet

啟動Nginx成功後輸入:IP+對映埠也能訪問

關閉Nginx後、無法訪問

問題:每次改動Nginx配置檔案、都需要進入容器的內部?十分的麻煩。我要是可以在外部提供一個對映路徑、達到在容器外部修改檔案、容器內部就可以自動修改。——資料卷可以解決

二)部署Tomcat

官方文件的使用。
docker run -it --rm tomcat:9.0
我們之前的啟動都是-d後臺啟動、停止了容器之後、容器還是可以查到、docker run -it --rm tomcat:9.0一般用來測試、用完即刪。如下所示:


一)下載Tomcat
docker pull tomcat:9.0
二)啟動執行
docker run -d -p 9999:8080 --name tomcat01 tomcat
三)測試訪問沒有問題
curl http://localhost:9999/
四)進入容器
docker exec -it tomcat01 /bin/bash
發現問題:1.其tomcat容器下liunx命令少了、2.沒有webapp是阿里雲的原因、預設是最小的映象、所有不必要的都刪除掉,保證最小可執行環境。