Docker的简单部署练习

一、nginx部署

1、Nginx常用来做负载均衡和反向代理。

2、部署nginx

(1)查找镜像

Docker的简单部署练习

 

 (2)拉取镜像

Docker的简单部署练习

 

 

(3)查看已下载镜像

 

Docker的简单部署练习

 

 

3、运行nginx实例。

(1)运行一个实例。

  命令:docker run -d --name nginx01 -p 3344:80 nginx

  解释:-d,以后台方式运行;--name nginx01,定义的运行容器实例名字;-p 3344:80 将容器内部的80端口映射给宿主机的3344端口;nginx,镜像名称。

  Docker的简单部署练习

 

   通过查看发现,该容器已经运行。

 

(2)本机自测检验是否可以访问nginx

  命令:curl localhost:3344

Docker的简单部署练习

 

 

(3)端口映射浅析

  如图所示,容器是一个互相隔离的小系统,容器与宿主机之间是无法直接访问,所以需要通过接口映射将容器内部端口与宿主机进行映射,暴露宿主机的端口供访问。

Docker的简单部署练习

 

 

(4)上述过程即是对nginx的部署,理论上在外网可以直接访问。(ps:但是我实际测试访问失败了,不知道是什么原因)

 

二、tomcat部署

1、安装tomcat之前建议先去docker官网查看支持的tomcat版本。

2、用完即删除的容器运行方式

  命令:docker run -it --rm tomcat:9.0

   直接运行tomcat9.0版本(docker如果不存在镜像,会先去拉去,所以可以不先下载镜像而直接运行容器);运行方式选择--rm方式,即启动这个容器之后就开始运行,当容器停止就把这个容器删除(之前的方式可以查看到历史容器运行记录)。

Docker的简单部署练习

 

 

  停止容器,查看记录,发现并没有历史容器记录,但是有tomcat这个镜像。

 

Docker的简单部署练习

 

 

3、部署tomcat。

  命令:docker run -d --name tomcat01 -p 3355:8080 tomcat

Docker的简单部署练习

由上图可知,部署成功

 

三、部署Kibana

  ES的特点:es暴露的端口很多,且非常耗内存,而且需要挂在到安全目录。

1、开启容器,

    指令:docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

    含义:将9200、9300端口暴露出来;-e"discovery.type=single-node",使用单节点模式;elasticsearch:7.6.2,指定es的版本。

Docker的简单部署练习

 

 

  使用es之后,服务器会变得很卡!

  可以使用   docker stats  查看系统资源占用情况。从下图可以看到,目前只有一个tomcat02的容器在跑。

Docker的简单部署练习

 

 

2、如何解决ES占用内存的情况呢?

  可以修改环境变量方式来分配内存。

  命令:docker run -d --name elasticsearch03 -p 9400:9400 -p 9500:9500 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xms512m" elasticsearch:7.6.2

  含义:-e ES_JAVA_OPTS="-Xms64m -Xms512m",表示只分配64M到512M的内存给ES这个容器。 

 

Docker的简单部署练习

 

 

3、容器内部如何通信?

  容器之间是互相隔离的,所以不能直接连接。所以需要通过服务器内网地址进行转接,内网与容器之间也需要做一个映射。

Docker的简单部署练习

 

Docker的简单部署练习

上一篇:通过CTAPI和Citect SCADA软件进行数据通讯


下一篇:Windows Azure系列 -《基础篇》- 存储