安装nginx

docker pull nginx

# 下载完成后运行
docker run -d --name nginx1 -p 8080:80 nginx   # 后台运行,容器命名为nginx1,将容器的80映射到主机的8080端口

此时我们访问:localhost:8080就能看到Welcome to nginx!页面

安装Tomcat

docker镜像里面的tomcat官方文档有这么一段命令:

docker run -it --rm tomcat:9.0

run可以直接自动下载对应的镜像,所以后面可以像pull那样接tag;

-it是交互,--rm表示交互结束后,比如exit退出后,容器就会自动删除,但是镜像会被保留

自己动手

docker pull tomcat          # 拉取最新镜像

# 拉取完毕运行
 docker run -d -p 8081:8080 --name tomcat1 tomcat:latest     # 后台运行,将8080映射到8081,命名tomcat1,使用latest最新镜像(如果存在多个版本的情况下使用)

此时我们访问:localhost:8081;可以看到是404页面

原因是因为阿里的镜像,他是最小化封装的,保证最小可运行的环境,所以系统相对应的会缺失一些命令和文件配置。

我们进入到tomcat1容器的webapps目录下查看一下文件

PS C:\Users\13219> docker exec -it tomcat1 /bin/bash
root@101ee032df75:/usr/local/tomcat# ls
BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf  logs            temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   native-jni-lib  webapps  work

进入到容器后通过ls发现有一个webapps目录,这个就是tomcat的web目录,我们进入该目录。

root@101ee032df75:/usr/local/tomcat# cd webapps
root@101ee032df75:/usr/local/tomcat/webapps# ls    # 通过ls发现这个用于存放web资源的目录是空的
root@101ee032df75:/usr/local/tomcat/webapps#

我们再进入到另一个目录webapps.dist

root@101ee032df75:/usr/local/tomcat/webapps# cd ../     # 返回上一级目录
root@101ee032df75:/usr/local/tomcat# cd webapps.dist    # 进入
root@101ee032df75:/usr/local/tomcat/webapps.dist# ls    # 查看文件列表
ROOT  docs  examples  host-manager  manager             # 存在文件

也就是说官方把默认的web资源放在了webapps.dist目录,我们只需要把这个目录下的文件复制到webapps目录下就能访问了。

root@101ee032df75:/usr/local/tomcat# cp -r webapps.dist/* webapps

实际上我们是在/usr/local/tomcat系统目录下,将webapps.dist/*下的所有文件复制到webapps中就行了,再次刷新默认的web页面就出来了。

另一种复制方式,从webapps.dist目录里直接复制到webapps

root@101ee032df75:/usr/local/tomcat# cd webapps.dist
root@101ee032df75:/usr/local/tomcat/webapps.dist# ls
ROOT  docs  examples  host-manager  manager
root@101ee032df75:/usr/local/tomcat/webapps.dist# cp -r * ../webapps
root@101ee032df75:/usr/local/tomcat/webapps.dist# cd ..
root@101ee032df75:/usr/local/tomcat# cd webapps
root@101ee032df75:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager

部署elasticsearch+kibana

elasticsearch是一个免费开源搜索和分析引擎,但是本身是否浩内存,1g2g的内存完全没法正常使用,开启就会卡死。这也是后面需要处理的一个事情

在官方镜像仓库搜索后第一个官方镜像里有这么一段调用命令

docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag

其中--net是处理网络,目前还没学,这段可以删掉,然后暴露了两个端口:9200、9300,后面的-e表示设置环境变量参数,大概意思是集群的配置,默认是一个单个节点,elasticsearch:tag 表示要启动elasticsearch,但是tag需要自己设置tag标签。

精简一下:

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

版本号是教程提供的,照着整就完事了。

在配置低的vps上,我们会遇到以下问题:

  1. 暴露的端口比较多
  2. 十分耗内存
  3. es的数据一般需要放置到安全目录!挂载
  4. 网络配置?

这里我们了解一个命令:

docker stats [options] [容器id]  # 查看cpu、内存等占用情况,可以看到es占用了差不多2g的内存

# 如果不给options和容器id默认是查看所有
docker stats

当我们运行后,可以访问:http://localhost:9200/来判断es是否启动成功。

调整内存配置

通过-e来配置内存大小,具体配置百度即可,大概是这么一段命令

docker run -d --name elasticsearch1 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms200m -Xmx400m" elasticsearch:7.6.2

注意name记得换一个,不能重名,重新运行生成的容器,内存就不会占用过大了。

可视化

portainer (先用这个)

目前2022年1月份portainer/portainer镜像停止维护,转战到portainer/portainer-ce了,我们使用最新的。

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always  -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data cr.portainer.io/portainer/portainer-ce:2.9.3

--restart=always暂时不管他的作用,-v表示挂载卷,这个后面再讲,主要是运行可视化面板体验一下

可能还需要在运行前运行这个命令

docker volume create portainer_data

运行容器后通过:https://localhost:9443/访问,注意一定得是https

访问成功后,页面一开始是让创建账号,创建成功后进入。

进入后可以选择是控制本地还是远程,一个是Local一个是Add Environments,我们控制本地,所以Local就行了,如果不小心点掉了网页,可以通过https://localhost:9443/#!/wizard这个地址重新选择。

当然这个也不是很重要,也可以通过其他手段处理啥。

进入控制面板后自己摸索下就行了,很简单的,就是一个web版的docker管理后台,可以管理容器、镜像、卷、网络巴拉巴拉一堆,当然为了技术,还是少用一点,不然容易变傻(命令太多,不用就忘了)。

Rancher(CI/CD再用)

有机会再研究

分类: Docker 标签: nginxdockerTomcatelasticsearchkibanaportainerdocker 可视化Rancher

评论

暂无评论数据

暂无评论数据

目录