0


Docker基础 部署nginx、部署Tomcat、部署ES+Kibana

Docker 部署 Nginx

搜索Nginx镜像:

搜索镜像建议前往官网docker hub去搜,这样可以看到帮助文档信息

Docker Hubhttps://hub.docker.com/

  1. #找到想要拉取的版本,这里列出前三个
  2. [root@localhost ~]# docker search nginx
  3. NAME DESCRIPTION STARS OFFICIAL AUTOMATED
  4. nginx Official build of Nginx. 16639 [OK]
  5. bitnami/nginx Bitnami nginx Docker Image 122 [OK]
  6. ubuntu/nginx Nginx, a high-performance reverse proxy & we 41

拉取需要的Nginx镜像:

  1. #这里拉取最新版的Nginx镜像
  2. [root@localhost ~]# docker pull nginx
  3. [root@localhost ~]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. nginx latest 12766a6745ee 2 weeks ago 142MB

启动Nginx镜像:

  1. #我们以后台的方式启动Nginx,并给nginx挂载一个名字:nginx01,
  2. #并给nginx这个服务暴露一个端口号,在加上需要启动的镜像镜像
  3. [root@localhost ~]# docker run -d --name nginx01 -p:2022:80 nginx
  4. 63ede60d0df902b3a9267ffb8b1b1b2202d1ba66bae0dcee0c41422788e9ceb5
  5. #查看启动的容器
  6. [root@localhost ~]# docker ps
  7. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  8. 63ede60d0df9 nginx "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 0.0.0.0:2022->80/tcp, :::2022->80/tcp nginx01
  9. #-d 后台启动容器
  10. #--name 给容器取个名字
  11. #-p 宿主机端口:容器内部端口 暴露端口
  12. #docker run 创建容器时,可以加参数 -p 暴露端口,让外网可以访问这个docker容器
  13. 使用方法:-p参数放在依赖的镜像之前
  14. docker run -启动方式 --name 容器名 -p:宿主机端口:容器端口
  15. 其中:服务器端口也就是虚拟机端口,docker端口默认是80

本机自测Nginx:

  1. [root@localhost ~]# curl localhost:2022
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title>Welcome to nginx!</title>
  6. #出现了Welcome to nginx!这个标题,欢迎来到nginx!
  7. 证明服务已经启动成功

浏览器访问Nginx服务:

** 端口暴露的概念:**

Docker 部署 Tomcat

拉取Tomcat镜像:

  1. #拉取想要部署的tomcat版本镜像,这里拉取最新版的tomcat
  2. [root@localhost ~]# docker pull tomcat
  3. [root@localhost ~]# docker images
  4. REPOSITORY TAG IMAGE ID CREATED SIZE
  5. tomcat latest b00440a36b99 2 weeks ago 680MB

启动Tomcat镜像

  1. #以后台运行的方式启动Tomcat镜像,并给容器起个tomcat01的名字,
  2. 给这个容器暴露端口3344:8080 ,把容器外部的3344端口给容器内部的8080端口做一个映射,这样容器外面的3344端口就能访问带容器内部的8080端口了,并写上依赖的镜像tomcat
  3. [root@localhost ~]# docker run -d --name tomcat01 -p 3344:8080 tomcat
  4. 0a983131160d82a25f355717bac46ecab122ad99b81f1406ec295cc7363c35bc
  5. [root@localhost ~]# docker ps
  6. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  7. 0a983131160d tomcat "catalina.sh run" 45 seconds ago Up 44 seconds 0.0.0.0:3344->8080/tcp, :::3344->8080/tcp tomcat01

外网访问Tomcat

** 发现服务未找到,解决该问题:**

解决Tomcat 404服务未找到问题

  1. #测试访问没有问题,但服务未找到,那就这个容器出现问题。
  2. #进入该容器:
  3. [root@localhost ~]# docker exec -it tomcat01 /bin/bash
  4. root@0a983131160d:/usr/local/tomcat# ll
  5. bash: ll: command not found
  6. root@0a983131160d:/usr/local/tomcat# ls -a
  7. . LICENSE RUNNING.txt logs webapps.dist
  8. .. NOTICE bin native-jni-lib work
  9. BUILDING.txt README.md conf temp
  10. CONTRIBUTING.md RELEASE-NOTES lib webapps
  11. root@0a983131160d:/usr/local/tomcat# ls webapps
  12. root@0a983131160d:/usr/local/tomcat#
  13. #发现问题,1、linux命令少了 2、没有webapps 阿里云镜像的原因。默认是最小的镜像,所有不必要的都剔除掉了,保证最小可运行的环境。
  14. #解决问题:
  15. #发现该有的文件都被压缩在webapps.dist文件里了
  16. root@0a983131160d:/usr/local/tomcat# ls webapps.dist
  17. ROOT docs examples host-manager manager
  18. #所以将这个压缩文件里的文件全部复制到webapps文件里即可解决问题
  19. root@0a983131160d:/usr/local/tomcat# cp -r webapps.dist/* webapps
  20. root@0a983131160d:/usr/local/tomcat# ls webapps
  21. ROOT docs examples host-manager manager
  22. #这样webapps目录下就有文件目录了

重新使用外网访问Tomcat,成功:

部署ES+Kibana

我们在官网docker.hub上查看最新版本的信息,和部署方法

#es 暴露的端口很多!

#es 十分耗内存

#es 的数据一般需要放置到安全目录!挂载

--net elasticsearch 网络配置

拉取elasticsearch镜像

  1. 拉取需要的elasticsearch镜像
  2. [root@localhost ~]# docker pull elasticsearch:8.1.2

启动elasticsearch镜像

  1. #这里以官网的方式启动,官网里的参数可根据自己的需求更改,这里不需要网络配置参数,所以去除了
  2. --net somenetwork参数
  3. [root@localhost ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.1.2
  4. 426d8e8712e58631cde8ead11034b51bddea83869ff2ce9c683b48f1468861cf
  5. [root@localhost ~]# docker ps
  6. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
  7. NAMES
  8. 426d8e8712e5 elasticsearch:8.1.2 "/bin/tini -- /usr/l…" 53 seconds ago Up 52 seconds 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch

这个elasticsearch耗内存比较大,单这个elasticsearch就会占1个多G的内存,所以配置这个容器建议把虚拟机配置调大一些,否则容易卡顿

查看docker cpu内存状态

可以看到光一个elasticsearch容器就占用了2个多G

  1. [root@localhost ~]# docker stats
  2. CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
  3. 426d8e8712e5 elasticsearch 0.82% 2.265GiB / 3.84GiB 58.99% 40.5MB / 211kB 232MB / 183MB 62

限制容器的内存使用

  1. #增加内存的限制,修改配置文件,-e 环境配置修改
  2. [root@localhost ~]# docker run -d --name elasticsearch03 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:8.1.2
  3. fd5f8f41d9212109d4124b6b89597ffaacf4699665c59e7d6e7a4a62f64a0eba
  4. #这里添加了参数-e ES_JAVA_OPTS="Xms64m -Xms512m"
  5. 限制内存最小分配64m 最大分配512m
  6. #查看限制内存后的elasticsearch容器:
  7. [root@localhost ~]# docker stats
  8. CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
  9. fd5f8f41d921 elasticsearch03 0.81% 525.6MiB / 3.84GiB 13.37% 40.4MB / 251kB 20.2MB / 168MB 63
  10. #发现现在只占用525m了,是之前的四分之一的内存
标签: docker nginx 云计算

本文转载自: https://blog.csdn.net/weixin_53466908/article/details/124226317
版权归原作者 Python-派大星 所有, 如有侵权,请联系我们删除。

“Docker基础 部署nginx、部署Tomcat、部署ES+Kibana”的评论:

还没有评论