docker部署案例
docker安装部署案例1. 部署nginx2. 部署tomcat1. 部署nginx1.1 确保本机docker已经启用1.2 确定自己需要的nginx版本可以前往dockhub仓库查看目前已有版本https://hub.docker.com/search?q=nginx1.3 拉取镜像docker pull nginx不追加版本默认拉取最新版[root@CENTOS7 ~]# docker p
docker安装部署案例
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占用资源少很多
更多推荐
所有评论(0)