1. 部署nginx

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:8044
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
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>

或者直接页面访问端口可以看到部署已经完成
在这里插入图片描述

2. 部署tomcat

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:4399
<!doctype html><html lang="en"><head><title>HTTP Status 404 – Not Found</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1><hr class="line" /><p><b>Type</b> Status Report</p><p><b>Description</b> The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.</p><hr class="line" /><h3>Apache Tomcat/10.0.14</h3></body></html>

2.6 目前发现问题页面404,因为tomcat的输出页面路径默认在webapps下,但是进入容器发现webapps下没有任何文件,这是因为阿里云镜像导致的,默认是最小镜像,所有不必要的都剔除掉 ,保证最小可运行的环境!
在这里插入图片描述
解决方法:可以webapps.dist下的文件拷贝到webapps目录下

cp -r webapps.dist/* webapps

然后在页面刷新一下,可以看到tomcat的主页面了,到此tomcat部署完成
在这里插入图片描述

3.部署ES(elasticsearch)

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占用资源少很多

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐