美文网首页
Docker学习重点(4)~docker 部署环境

Docker学习重点(4)~docker 部署环境

作者: 一乐乐 | 来源:发表于2022-05-15 18:33 被阅读0次

    一、部署Nginx

    1、下载nginx镜像(这一步可以省略,直接进入第二步会自动下载的) pull

    2、启动容器 run

    3、进入容器 exec

    1、镜像:

    • docker hub官网搜索nginx

    • 下载:docker pull nginx
    • 查看下载情况:docker images

    2、容器:

    • 创建容器命令:docker run [-d 后台启动] [--name nginx01 起别名] [-p 3344:80 端口:协议] [镜像(包含版本)]

    • (创建)启动容器实例: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脚本,用于解释执行Linux命令,根据镜像支持的shell的不同,可以使用不同的的shell脚本。

    • 容器,也是和虚拟机一样是虚拟技术呀,通过脚本执行/bin/bash实现,创建并进入容器内部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,发现问题:

    1、linux命令少了

    2、没有webapps

    [图片上传失败...(image-4da331-1652610780617)]

    这是阿里云镜像的原因:默认使用最小镜像,所有不必要的都剔除了,保证最小可运行环境

    • 可以通过拷贝的方式,解决没有webapps的问题:
    图片.png
    • 在浏览器中输入:http://服务器ip地址:3355/ 进行访问

    ● 思考问题:我们以后部署项目,如果每次都要进入容器很麻烦?

    • 要是可以在容器外部提供一个映射路径,webapps,我们在外部放置项目,容器内部就可以自动修改?-v 数据卷技术!


    三、部署es+kibana

    ● Elasticsearch 的问题:

    • es 暴露的端口很多

    • es 十分耗内存

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

    1、问题1:es 十分耗内存

    • 下载启动运行elastissearch 之后,Linux系统就变得特别卡
    # 启动了 linux就卡住了
    docker stats
    
    # 查看 cpu的状态 #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 环境配置修改

    # 通过 -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


    如果本文对你有帮助的话记得给一乐点个赞哦,感谢!

    相关文章

      网友评论

          本文标题:Docker学习重点(4)~docker 部署环境

          本文链接:https://www.haomeiwen.com/subject/qmsburtx.html