栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker部署案例

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker部署案例

docker安装部署案例
  • 1. 部署nginx
  • 2. 部署tomcat
  • 3.部署ES(elasticsearch)

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



Welcome 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. 部署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
HTTP 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.部署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占用资源少很多

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号