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

docker部署案例相关推荐

  1. Swarm集群搭建( docker安装、docker-compose安装、portainer可视化安装、基本使用命令总结、项目集群部署案例)

    docker安装.docker-compose安装.Swarm集群搭建.portainer可视化安装.和项目部署案例 四台服务器,我这里选用四台虚拟机1核2G,系统centos7,ip:192.168 ...

  2. Docker 部署SpringBoot项目不香吗?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:流星007 链接:toutiao.com/i68433912 ...

  3. 部署go的web应用_使用Docker部署Go Web应用

    为什么需要Docker? 使用docker的主要目标是容器化.也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机. 想象一下你是否也会遇到下面这个场景,你在本地开发了你的应用程序,它很可能有很 ...

  4. 基于docker部署的微服务架构(九): 分布式服务追踪 Spring Cloud Sleuth

    为什么80%的码农都做不了架构师?>>>    前言 微服务架构中完成一项功能经常会在多个服务之间远程调用(RPC),形成调用链.每个服务节点可能在不同的机器上甚至是不同的集群上,需 ...

  5. Docker部署SDN环境

    2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...

  6. Docker 部署dotnetcore

    安装docker 系统还是之前centos 7.1 https://www.docker.com/products/docker#/linux yum update 创建源: /etc/yum.rep ...

  7. docker部署redis集群_Docker部署Redis集群----第九节(docker-redis哨兵集群“轮询分流”篇实例一)...

    到此,我们的 Redis 哨兵集群就结束了,本篇章是第九篇章,也是使用集群方式的实例一来实现php的轮询分流. 1.准备工作: 在我们上一篇章实现redis 哨兵集群的基础上开始,在服务器上部署php ...

  8. 如何使用Docker部署Go Web应用

    转载地址:https://www.liwenzhou.com/posts/Go/how_to_deploy_go_app_using_docker/#autoid-0-0-0 本文介绍了如何使用Doc ...

  9. 采用docker部署3台Redis分布式红锁实例

    采用docker部署3台Redis分布式红锁实例 docker run -p 6381:6379 --name redis-master-1 -d redis:5.0.7 docker run -p ...

  10. 如何将pytorch检测模型通过docker部署到服务器

    向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习  公众号:datayx 本文记录下如何使用docker部署pytorch文本检测模型到服务器, .镜像文件也上传到d ...

最新文章

  1. 中科院博士因论文致谢走红后,回到母校演讲再刷屏!网友:是对寒门学子最好的激励...
  2. [linux] tcpdump抓包案例
  3. 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...
  4. PAT A1063——set的常见用法详解
  5. gson生成jsonobject_GSON形式生成和解析json数据
  6. css vertical-align
  7. 《python cookbook》chapter 1
  8. linux指令:echo, head, tail
  9. linux kvm参数,Linux KVM总结
  10. 电商人:别再跟数据透视表苦苦挣扎,这个报表神器才是你最后出路
  11. 物联网给快递业带来新变革
  12. 【CSS】 CSS基础知识 属性和选择
  13. matlab里的copula函数,常见copula函数简介
  14. Microsoft Office Visio 2007 下载
  15. 我们建立数据中心,需要考虑哪些问题?
  16. python远程连接windows_python winrm 连接windows
  17. android+警告声音,在Delphi XE5 / Android平台上播放声音警报/哔哔声
  18. 使用PHP编写的基于MySQL博客模板-可直接使用
  19. Cannot truncate table 'xxx' because there are one or more isolation level 0 scans, or REO
  20. mysql 左联left join解析及使用指南

热门文章

  1. aspjpeg组件在2008R2下“ActiveX 部件不能创建对象”
  2. Java方法 根据经纬度计算距离
  3. CentOS7各个版本镜像下载地址及说明、Everything版
  4. android 的hook技术,Android Native Hook技术(一)
  5. 春考计算机组装与维护,计算机组装与维护教程(高职高专计算机系列)
  6. 新中大计算机知识,新中大软件操作步骤
  7. CF#552div3题解
  8. 玩qq游戏提示计算机内存不足,win10系统玩游戏提示“计算机内存不足”怎么办...
  9. j2sdkversion-doc.zip下载地址
  10. dts : rx8025t与lm75bd