Docker學習重點(4)~docker 部署環(huán)境


一、部署Nginx

1、下載nginx鏡像(這一步可以省略,直接進入第二步會自動下載的) pull

2、啟動容器 run

3、進入容器 exec


1、鏡像:

  • docker hub官網搜索nginx

  • 下載:docker pull nginx
  • 查看下載情況:docker images


2、容器:

  • 創(chuàng)建容器命令:docker run [-d 后臺啟動] [--name nginx01 起別名] [-p 3344:80 端口:協(xié)議] [鏡像(包含版本)]

  • (創(chuàng)建)啟動容器實例:docker run -d --name nginx01 -p 3344:80 nginx
  • 查看容器運行狀況:docker ps

  • 本機訪問測試一下:curl localhost:3344

■ 端口暴露 -p 宿主機端口:容器內部端口

圖片.png
  • 瀏覽器輸入: http://服務器ip地址:3344/
    3344 是暴露的端口

----接下來:

  • 進入(正在運行的)容器內部:docker exec -it nginx01 /bin/bash
    [root@iZwz9535z41cmgcpkm7i81Z /]# docker exec -it nginx01 /bin/bash
    root@d1a29e4791e3:/# whereis nginx
    nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
    root@d1a29e4791e3:/# cd /etc/nginx
    root@d1a29e4791e3:/etc/nginx# ls
    conf.d    fastcgi_params  mime.types  modules  nginx.conf  scgi_params  uwsgi_params
    root@d1a29e4791e3:/etc/nginx# 
    

■ /bin/bash

是Linux的一種常用shell腳本,用于解釋執(zhí)行Linux命令,根據鏡像支持的shell的不同,可以使用不同的的shell腳本。

  • 容器,也是和虛擬機一樣是虛擬技術呀,通過腳本執(zhí)行/bin/bash實現,創(chuàng)建并進入容器內部docker


● 思考問題:每次改動nginx配置文件,都需要進入容器內部,十分麻煩:

要是可以在容器外部提供一個映射路徑,達到在容器修改文件名,容器內部就可以自動修改?-v 數據卷技術!



二、部署tomcat

  • docker run 可以不用pull,能自動下載
圖片.png
  • ctrl+c退出
docker pull tomcat:9.0 
  • 啟動運行,應該加上版本號:
docker run -d -p 3355:8080 --name tomcat01 tomcat:9.0
  • 進入容器
docker exec -it tomcat01 /bin/bash

● 部署tomcat,發(fā)現問題:

1、linux命令少了

2、沒有webapps

[圖片上傳失敗...(image-4da331-1652610780617)]

這是阿里云鏡像的原因:默認使用最小鏡像,所有不必要的都剔除了,保證最小可運行環(huán)境

  • 可以通過拷貝的方式,解決沒有webapps的問題:
圖片.png
  • 在瀏覽器中輸入:http://服務器ip地址:3355/ 進行訪問

● 思考問題:我們以后部署項目,如果每次都要進入容器很麻煩?

  • 要是可以在容器外部提供一個映射路徑,webapps,我們在外部放置項目,容器內部就可以自動修改?-v 數據卷技術!



三、部署es+kibana

● Elasticsearch 的問題:

  • es 暴露的端口很多

  • es 十分耗內存

  • es 的數據一般需要放置到安全目錄!掛載


1、問題1:es 十分耗內存

  • 下載啟動運行elastissearch 之后,Linux系統(tǒng)就變得特別卡
# 啟動了 linux就卡住了
docker stats

# 查看 cpu的狀態(tài) #es 是十分耗內存的,1.xG
# 1核2G(學生機)! # 查看 docker stats


2、問題2:es 需要暴露的端口很多 -p

# (下載)啟動 elasticsearch
$ docker run -d --name elasticsearch01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

# 查看內存占用情況
docker stats
圖片.png
# 先感覺stop一下
docker stop ba18713ca536


3、es 十分耗內存的解決:增加內存的限制,修改配置文件 -e 環(huán)境配置修改

# 通過 -e 限制內存
docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.2
[root@iZwz9535z41cmgcpkm7i81Z /]# curl localhost:9200/
{
  "name" : "14329968b00f",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "0iDu-G_KTo-4X8KORDj1XQ",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}


4、思考:用kibana連接elasticsearch?

  • 思考(kibana連接elasticsearch)網絡如何連接過去
圖片.png



? 參考來源:
狂神的B站視頻《【狂神說Java】Docker最新超詳細版教程通俗易懂》 https://www.bilibili.com/video/BV1og4y1q7M4



如果本文對你有幫助的話記得給一樂點個贊哦,感謝!

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容