Docker应用实例(安装nginx、Tomcat、es)

6.Docker实例

(1)docker安装nginx

#搜索镜像
[root@cluster-node-5 ~]# docker search nginx
NAME                               DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                              Official build of Nginx.                        14291     [OK]
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1941                 [OK]
......
#下载镜像并查看(默认下载最新版本)
docker pull nginx
docker images nginx #或者 docker images
[root@cluster-node-5 ~]# docker images nginx
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
nginx        latest    f6d0b4767a6c   8 days ago   133MB


#启动镜像并查看 
 -d #后台运行
 --name #镜像运行实例,重命名
 -p #-p:3000:80将外部的3000端口暴露给容器内部80端口用
docker run -d --name nginx01 -p:3000:80 f6d0b4767a6c
[root@cluster-node-5 ~]# docker run -d --name nginx01 -p:3000:80 f6d0b4767a6c
d133901454709acf97d64f31344dde10af897a6cf8b368efcbc064d12b6c682d
[root@cluster-node-5 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                  NAMES
d13390145470   f6d0b4767a6c   "/docker-entrypoint.…"   54 seconds ago   Up 53 seconds   0.0.0.0:3000->80/tcp   nginx01

#测试nginx
curl localhost:3000
[root@cluster-node-5 ~]# curl localhost:3000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

#进入nginx容器
 -it #交互模式进入容器
 /bin/bash #镜像运行环境
docker exec -it nginx01 /bin/bash

[root@cluster-node-5 ~]# docker exec -it nginx01 /bin/bash
root@d13390145470:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx

端口暴露(端口映射原理图)

在这里插入图片描述

思考一个问题:每次修改nginx配置文件,我们都需要进入容器内部,非常的麻烦,如果我们能在容器外部建立映射路径,当在容器外部修改相关配置文件时,容器内部就可以自动修改? ( -v 数据卷技术)

(2)docker安装Tomcat

#官方安装命令
 --rm #用完即删,一般用于测试
docker run -it --rm tomcat:9.0 #安装成功后就可以看到tomcat常见的日志
21-Jan-2021 01:46:51.559 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"                                        ]
21-Jan-2021 01:46:51.571 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [72] milliseconds

#安装最新版tomcat(一步到位)
docker run -it -d --name tomcat01 -p 9090:8080 tomcat /bin/bash

#查看tomcat容器
[root@cluster-node-5 ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                    NAMES
6380121f2a28   tomcat         "/bin/bash"              18 seconds ago   Up 16 seconds   0.0.0.0:9090->8080/tcp   tomcat01
d13390145470   f6d0b4767a6c   "/docker-entrypoint.…"   49 minutes ago   Up 49 minutes   0.0.0.0:3000->80/tcp     nginx01

#浏览器验证Tomcat是否安装成功?
#页面访问失败(404)
#进入容器,查看相关资源,发现webapps下面什么都没有,为什么呢?因为镜像源保证最小、最核心、最精简的部分,剔除非必要的
#可以将webapps.dist下面的文件拷贝到webapps即可(也可以直接重命名)
root@6380121f2a28:/usr/local/tomcat# cp -r webapps.dist/* webapps/
root@6380121f2a28:/usr/local/tomcat# cd webapps
root@6380121f2a28:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager

再思考一个问题:如果我们要部署一个工程到tomcat,那按正常流程应该要先进入容器中,然后将工程拷贝到webapps目录下。可不可以将容器webapps目录映射到容器外(主机)的webapps目录下面。

(3)docker安装es+kibana

es暴露的端口比较多,所以启动相关镜像的时候要特别注意!!!

es 非常消耗内存

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

#docker启动es
  #增加环境配置
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
 
#启动之后非常卡
#查看内存状态
docker stats
#增加内存限制
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_POTS="-Xms64M -Xmx512M" elasticsearch:7.6.2


(4)容器之间的访问

因为容器之间是相互隔离的,但它们都是建立在Linux的kernel上,所以这里可以通过内网实现容器之间的访问。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值