- 1. 部署nginx
- 2. 部署tomcat
- 3.部署ES(elasticsearch)
1.1 确保本机docker已经启用
1.2 确定自己需要的nginx版本
可以前往dockhub仓库查看目前已有版本 https://hub.docker.com/search?q=nginx
1.3 拉取镜像
docker pull nginx 不追加版本默认拉取最新版
[root@CENTOS7 ~]# docker pull nginx Using default tag: latest latest: Pulling from library/nginx Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31 Status: Image is up to date for nginx:latest docker.io/library/nginx:latest
1.4 查看下载的镜像
[root@CENTOS7 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 605c77e624dd 3 months ago 141MB
1.5 运行镜像文件
其中-it代表交互运行d代表后台运行
–name代表给容器设置名字
-p 宿主机端口:容器端口 代表和宿主机端口映射 注意需要映射主机端口必须没有没占用
docker run -itd --name nginx02 -p 8044:80 nginx
[root@CENTOS7 ~]# docker run -itd --name nginx02 -p 8044:80 nginx da5a24bdbabf81b6608ec4193c9034e362e764bece78998bbf3f988b2e9ad74c
1.5 查看nginx容器是否在运行
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES da5a24bdbabf nginx "/docker-entrypoint.…" 2 hours ago Up 2 hours 0.0.0.0:8044->80/tcp, :::8044->80/tcp nginx02
1.6本机查看nginx是否已经起来
curl localhost:8044 测试服务端口是否起来
[root@CENTOS7 ~]# curl localhost:8044Welcome to nginx! Welcome to nginx!If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
For online documentation and support please refer to "http://nginx.org/">nginx.org.
Commercial support is available at "http://nginx.com/">nginx.com.Thank you for using nginx.
或者直接页面访问端口可以看到部署已经完成
2.1和上述相同步骤,这边就省略俩步,直接开始拉取镜像最新tomcat镜像
# docker pull tomact默认拉取最新版本 拉取指定版本(例如)docker pull tomcat:9.0 [root@CENTOS7 ~]# docker pull tomcat Using default tag: latest latest: Pulling from library/tomcat Digest: sha256:9dee185c3b161cdfede1f5e35e8b56ebc9de88ed3a79526939701f3537a52324 Status: Image is up to date for tomcat:latest docker.io/library/tomcat:latest
2.2 查看已下载的镜像
[root@CENTOS7 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat latest fb5657adc892 4 months ago 680MB
2.3 运行下载的镜像
其中-it代表交互运行d代表后台运行
–name代表给容器设置名字
-p 宿主机端口:容器端口 代表和宿主机端口映射 注意需要映射主机端口必须没有没占用
[root@CENTOS7 ~]# docker run -itd --name tomcat01 -p 4399:8080 tomcat d6ca58417281e5469c01c47fccac80b21ed8ce8d258d9a572d8bbba7ce1aed90
2.4 查看tomcat容器是否起来
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1687796f321a tomcat "catalina.sh run" About an hour ago Up About an hour 0.0.0.0:4399->8080/tcp, :::4399->8080/tcp tomcat02
2.5 测试服务是否起来,返回结果没有报错代表服务成功
[root@CENTOS7 ~]# curl localhost:4399HTTP Status 404 – Not Found HTTP Status 404 – Not Found
Type Status Report
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/10.0.14
2.6 目前发现问题页面404,因为tomcat的输出页面路径默认在webapps下,但是进入容器发现webapps下没有任何文件,这是因为阿里云镜像导致的,默认是最小镜像,所有不必要的都剔除掉 ,保证最小可运行的环境!
解决方法:可以webapps.dist下的文件拷贝到webapps目录下
cp -r webapps.dist/* webapps
然后在页面刷新一下,可以看到tomcat的主页面了,到此tomcat部署完成
3.1 下载elasticsearch镜像,我这边没有指定版本默认下载最新版,指定版本下载比较慢
指定版本下载案例 docker pull elasticsearch:8.1.3
[root@CENTOS7 ~]# docker pull elasticsearch Using default tag: latest latest: Pulling from library/elasticsearch Digest: sha256:a8081d995ef3443dc6d077093172a5931e02cdb8ffddbf05c67e01d348a9770e Status: Image is up to date for elasticsearch:latest docker.io/library/elasticsearch:latest
3.2 查看已下载的镜像
[root@CENTOS7 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE elasticsearch latest 5acf0e8da90b 3 years ago 486MB
3.2 运行下载的镜像
其中-it代表交互运行d代表后台运行
–name代表给容器设置名字
-p 宿主机端口:容器端口 代表和宿主机端口映射 注意需要映射主机端口必须没有没占用
-e “discovery.type=single-node” 单节点下部署
[root@CENTOS7 ~]# docker run -itd --name ES01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch
3.3 查看elasticsearch服务是否正常
[root@CENTOS7 ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 497dff957ba4 elasticsearch "/docker-entrypoint.…" 7 seconds ago Up 6 seconds 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp ES01
3.4 查看存活状态,可以看到目前es的版本以及发布时间,到这步就已经部署完了。
如果出现卡顿请看3.5.1-3.5.2解决方法
[root@CENTOS7 ~]# curl localhost:9200
{
"name" : "Vs1S7K6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "_9U1Sl7kSIescHzbeiCpuw",
"version" : {
"number" : "5.6.12",
"build_hash" : "cfe3d9f",
"build_date" : "2018-09-10T20:12:43.732Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
3.5 查看内存占比 docker stats, 可以看到直接占用2g运行内存,部分虚拟机安装完可能特别卡,下面给出俩个解决方法3.5.1 解决方法1
给虚拟机分配更多的内存
3.5.2 解决方法2
关闭容器,增加内存限制,修改配置文件 -e环境配置修改
Xms64m代表运行内存,-Xmx512m代表物理内存
[root@CENTOS7 ~]# docker run -itd --name ES01 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch
以上是现在内存前后对比,ES01(限制前),ES02(限制后) 可以看到ES02明显比ES01占用资源少很多



