Docker——Docker常用命令+部署一些基本服务(NginxTomcatelasticsearch)
Posted Pakho`
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker——Docker常用命令+部署一些基本服务(NginxTomcatelasticsearch)相关的知识,希望对你有一定的参考价值。
Docker常用命令+部署一些基本服务(nginx、Tomcat、elasticsearch)
Docker基本命令
帮助命令
docker version #显示docker版本信息
docker info #显示docker系统信息,包括镜像和容器的数量
docker 命令 --help #帮助命令
镜像命令
docker images
查看当前本地主机上的所有镜像- 也可通过
docker images --help
查看
Options | Description(说明) |
---|---|
--all , -a | 显示所有镜像 |
--digests | 显示摘要 |
--filter , -f | 根据提供的条件过滤输出 |
--format | 使用Go模板打印漂亮的图像 |
--no-trunc | 不截断输出(输出配置) |
--quiet , -q | 仅显示镜像ID |
[root@docker /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 months ago 13.3kB
#解释
REPOSITORY 镜像仓库源
TAG 版本标签信息
IMAGE ID 镜像ID
CREATED 镜像的创建时间
SIZE 镜像大小
#可选项
-a, --all #列出所有镜像
-q, --quiet #只显示镜像ID
[root@docker /]# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest d1165f221234 3 months ago 13.3kB
[root@docker /]# docker images -q
d1165f221234
[root@docker /]# docker images -aq
d1165f221234
- 关于docker的搜索软件
Docker Hub
- https://registry.hub.docker.com/
- 如:
搜索mysql
- 同样可以使用
docker search
搜索镜像 docker search [OPTIONS] TERM
Options | Description(说明) |
---|---|
--filter , -f | 根据提供的条件过滤输出 |
--format | 使用Go模板的漂亮打印搜索 |
--limit | 最大搜索结果数 |
--no-trunc | 不截断输出 |
[root@docker /]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11023 [OK]
mariadb MariaDB Server is a high performing open sou… 4177 [OK]
#可选项,通过收藏过滤
--filter=STARS=3000 搜索出来的镜像就是STARS大于3000的
[root@docker /]# docker search mysql --filter=STARS=3000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11023 [OK]
mariadb MariaDB Server is a high performing open sou… 4177 [OK]
[root@docker /]# docker search mysql --filter=STARS=5000
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 11023 [OK]
docker pull
下载镜像docker pull + 镜像名[:tag]
[root@docker /]# docker pull --help
Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]
Pull an image or a repository from a registry
Options:
-a, --all-tags Download all tagged images in the repository
--disable-content-trust Skip image verification (default true)
--platform string Set platform if server is multi-platform capable
-q, --quiet Suppress verbose output
[root@docker /]# docker pull mysql #下载mysql,默认下载最新版
Using default tag: latest #如果不写版本信息,默认latest
latest: Pulling from library/mysql
69692152171a: Pull complete #分层下载,docker image的核心,联合文件核心
1651b0be3df3: Pull complete
951da7386bc8: Pull complete
0f86c95aa242: Pull complete
37ba2d8bd4fe: Pull complete
6d278bb05e94: Pull complete
497efbd93a3e: Pull complete
f7fddf10c2c2: Pull complete
16415d159dfb: Pull complete
0e530ffc6b73: Pull complete
b0a4a1a77178: Pull complete
cd90f92aa9ef: Pull complete
Digest: sha256:d50098d7fcb25b1fcb24e2d3247cae3fc55815d64fec640dc395840f8fa80969 #签名信息,防伪
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest #真实地址
#等价于它(真实地址)
docker pull mysql = docker.io/library/mysql:latest
#指定版本下载
[root@docker /]# docker pull mysql:5.7
5.7: Pulling from library/mysql
69692152171a: Already exists
1651b0be3df3: Already exists
951da7386bc8: Already exists
0f86c95aa242: Already exists
37ba2d8bd4fe: Already exists
6d278bb05e94: Already exists
497efbd93a3e: Already exists
a023ae82eef5: Pull complete
e76c35f20ee7: Pull complete
e887524d2ef9: Pull complete
ccb65627e1c3: Pull complete
Digest: sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
[root@docker /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 2c9028880e58 5 weeks ago 447MB
mysql latest c0cdc95609f1 5 weeks ago 556MB
hello-world latest d1165f221234 3 months ago 13.3kB
docker rmi
删除镜像rm
表示删除i
表示 images镜像-f
全部删掉
#通过ID删除
[root@docker /]# docker rmi -f 2c9028880e58
Untagged: mysql:5.7
Untagged: mysql@sha256:a682e3c78fc5bd941e9db080b4796c75f69a28a8cad65677c23f7a9f18ba21fa
Deleted: sha256:2c9028880e5814e8923c278d7e2059f9066d56608a21cd3f83a01e3337bacd68
Deleted: sha256:c49c5c776f1bc87cdfff451ef39ce16a1ef45829e10203f4d9a153a6889ec15e
Deleted: sha256:8345316eca77700e62470611446529113579712a787d356e5c8656a41c244aee
Deleted: sha256:8ae51b87111404bd3e3bde4115ea2fe3fd2bb2cf67158460423c361a24df156b
Deleted: sha256:9d5afda6f6dcf8dd59aef5c02099f1d3b3b0c9ae4f2bb7a61627613e8cdfe562
[root@docker /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest c0cdc95609f1 5 weeks ago 556MB
hello-world latest d1165f221234 3 months ago 13.3kB
docker rmi -f + 镜像id
删除指定镜像docker rmi -f 镜像id + 镜像id + 镜像id + 镜像id
删除多个镜像
#批量删除全部镜像
[root@docker /]# docker rmi -f $(docker images -aq) #将docker images 查找出的镜像作为参数,-aq 表示所有镜像ID
[root@docker /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
容器命令
- 说明:有了镜像,才可以创建容器,下载一个
CentOS
进行测试
[root@docker /]# docker pull centos
- 新建容器并启动
docker run
docker run [可选参数] image
Options | Description(说明) |
---|---|
--name="Name" | 容器名字 |
-d | 后台方式运行 |
-i -t | 使用交互方式运行,进入容器查看内容 |
-p | 指定容器的端口 -p 也可与主机映射 (如 -p 8080:8080) -p 主机端口:容器端口 - p 容器端口 -p ip 主机端口:容器端口 |
-P | 随机指定端口 |
#测试:启动并进入容器
[root@docker /]# docker run -it centos /bin/bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
[root@e048b0721875 /]# ls #查看容器内的centos,基础版本,很多命令是不完善的!
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
[root@e048b0721875 /]# exit #退出容器
exit
- 列出所有运行中的容器
docker ps
Options | Description(说明) |
---|---|
-a | 列出当前正在运行的容器+历史运行过的容器 |
-n=? | 显示最近创建的容器 |
-q | 只显示容器编号 |
[root@docker /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 查看曾经运行过的容器
docker ps -a
[root@docker /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d6c09b319aa centos "/bin/bash" About a minute ago Exited (0) About a minute ago beautiful_noyce
e048b0721875 centos "/bin/bash" 5 minutes ago Exited (0) 3 minutes ago hardcore_banach
f19d416c95a1 d1165f221234 "/hello" 9 hours ago Exited (0) 9 hours ago epic_saha
#只显示一个容器
[root@docker /]# docker ps -a -n=1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d6c09b319aa centos "/bin/bash" 4 minutes ago Exited (0) 3 minutes ago beautiful_noyce
#查看容器编号
[root@docker /]# docker ps -aq
1d6c09b319aa
e048b0721875
f19d416c95a1
- 退出容器
exit
Ctrl + P +Q
只退出不停止容器
[root@docker /]# docker run -it centos /bin/bash #运行容器
WARNING: IPv4 forwarding is disabled. Networking will not work.
[root@2aabcae91ba3 /]# [root@docker /]# docker ps #Ctrl+P+Q 后使用docker ps查看运行中的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2aabcae91ba3 centos "/bin/bash" 16 seconds ago Up 15 seconds elastic_napier
- 删除指定容器
docker rm + 容器id
- 删除所有容器
docker rm -f $(docker ps -aq)
#移除一个镜像
[root@docker /]# docker rm 1d6c09b319aa
1d6c09b319aa
- 不能删除一个正在运行的容器,如果要强制删除
rm -f
docker ps -a -q | xargs docker rm
删除所有的容器
#移除一个正在运行的容器
[root@docker /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2aabcae91ba3 centos "/bin/bash" 8 minutes ago Up 8 minutes elastic_napier
[root@docker /]# docker rm 2aabcae91ba3
Error response from daemon: You cannot remove a running container 2aabcae91ba332879caf73fbf4e5b91997ef2dd8040e7c65a42678e57cd11777. Stop the container before attempting removal or force remove
[root@docker /]# docker rm -f $(docker ps -aq)
2aabcae91ba3
e048b0721875
f19d416c95a1
[root@docker /]# docker ps -aq
- 启动和停止容器的操作
docker start 容器id
启动容器docker restart 容器id
重启容器docker stop 容器id
停止当前正在运行的容器docker kill 容器id
强制停止当前容器(杀死容器)
[root@docker /]# docker run -it centos /bin/bash #启动centos容器
[root@e3013ab05f2e /]# exit #退出容器
exit
[root@docker /]# docker ps -a #查看历史启动容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3013ab05f2e centos "/bin/bash" 44 seconds ago Exited (0) 29 seconds ago charming_shamir
[root@docker /]# docker start e3013ab05f2e #通过容器id启动容器
e3013ab05f2e
[root@docker /]# docker ps #查看docker正在运行centos容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3013ab05f2e centos "/bin/bash" 2 minutes ago Up 24 seconds charming_shamir
[root@docker /]# docker stop e3013ab05f2e #停止容器+id
e3013ab05f2e
[root@docker /]# docker ps #后台没有正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Docker常用其他命令
- 后台启动容器
一个需要注意的坑!!!
- 通过
docker run -d + 镜像名
启动- 问题
docker ps
,发现centos停止了 - 常见的坑,docker容器使用后台运行,必须有一个前台进程,docker发现没有应用,会自动停止
- 容器启动后发现自己没有提供服务,就会立刻停止(自杀),自身感觉没有程序了
- 问题
[root@docker /]# docker run -d centos #根据命令 -d 后台允许容器
WARNING: IPv4 forwarding is disabled. Networking will not work.
d12b6c3f8550db886789bd9d694f73dbab8ab09eb8b5e74027678ad7a53baafa
[root@docker /]# docker ps #ps查看容器发现没有
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 查看日志命令
docker logs
docker logs -f -t --since="2017-05-31" --tail=10 edu_web_1
Options | Description(说明) |
---|---|
--details | 详细信息 |
--follow , -f | 跟踪日志输出 -f:查看实时日志 |
--since | 显示自时间戳(例如2013-01-02T13:23:37Z)或相对时间戳(例如42分钟的42m)后的日志 |
--tail , -n | 从日志末尾显示的行数 --tail=10 查看最后的10条日志 |
--timestamps , -t | 显示时间戳 -t :查看日志产生日期 |
--until | 在时间戳(例如2013-01-02T13:23:37Z)或相对时间戳(例如42分钟42米)之前显示日志 |
--since | 此参数指定了输出日志开始日期,即只输出指定日期之后的日志 |
[root@docker /]# docker run -it centos /bin/bash #启动一个容器
[root@ae2ec1ac1942 /]# [root@docker /]# docker ps #查看当前运行容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae2ec1ac1942 centos "/bin/bash" 47 seconds ago Up 46 seconds interesting_joliot
[root@docker /]# docker logs -f -t --tail 10 ae2ec1ac1942 #容器没有日志
- 自己编写一段
shell
脚本让容器产生日志再次查看日志
[root@docker /]# docker stop ae2ec1ac1942 #停止当前centos容器
ae2ec1ac1942
[root@docker /]# docker run -d centos /bin/sh -c "while true;do echo pakho;sleep 1;done"#编写一段循环
WARNING: IPv4 forwarding is disabled. Networking will not work.
7c7f4ac3a694ab6c8c4745e8fe3121fad23d50ca8f304249b2c179bda9fb3310
[root@docker /]# docker ps #再次查看后台进程
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c7f4ac3a694 centos "/bin/sh -c 'while t…" 3 seconds ago Up 2 seconds bold_wiles
#显示日志
-tf : 显示日志产生时间及日志
--tail + number : 显示日志行数
[root@docker /]# docker logs -tf --tail 10 7c7f4ac3a694
2021-06-21T12:57:27.818168989Z pakho
2021-06-21T12:57:28.821377443Z pakho
2021-06-21T12:57:29.826794284Z pakho
2021-06-21T12:57:30.829251081Z pakho
2021-06-21T12:57:31.833963508Z pakho
2021-06-21T12:57:32.837149236Z pakho
2021-06-21T12:57:33.843411753Z pakho
2021-06-21T12:57:34.848600248Z pakho
...
- 查看容器中的进程信息
top
[root@docker /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c7f4ac3a694 centos "/bin/sh -c 'while t…" 7 minutes ago Up 7 minutes bold_wiles
[root@docker /]# docker top 7c7f4ac3a694
UID PID PPID C STIME TTY TIME CMD
root 4730 4711 0 20:53 ? 00:00:00 /bin/sh -c while true;do echo pakho;sleep 1;done
root 5263 4730 0 21:01 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
- 查看镜像元数据
docker inspect
docker inspect 容器id
[root@docker /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c7f4ac3a694 centos "/bin/sh -c 'while t…" 9 minutes ago Up 9 minutes bold_wiles
[root@docker /]# docker inspect 7c7f4ac3a694
- ★进入当前正在运行的容器方式
1
- 通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
docker exec -it 容器id /bin/bash
- exec:执行 -it:交互模式运行 /bin/bash :通过bash命令行进入
[root@docker /]# docker ps #查看当前正在运行的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c7f4ac3a694 centos "/bin/sh -c 'while t…" 20 minutes ago Up 20 minutes bold_wiles
[root@docker /]# docker exec -it 7c7f4ac3a694 /bin/bash
[root@7c7f4ac3a694 /]#
- 进入当前正在运行容器方式
2
docker attach 容器id
[root@docker /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c7f4ac3a694 centos "/bin/sh -c 'while t…" 27 minutes ago Up 27 minutes bold_wiles
[root@docker /]# docker attach 7c7f4ac3a694
Options | 区别 |
---|---|
docker exec | 进入容器后开启一个新的终端,可以在里面操作,也是我们常用的 |
docker attach | 进入容器正在执行的终端,不会启动新的进程 |
- 从容器中拷贝文件到主机上
docker cp 容器id:容器内路径 目的主机路径
- 当前copy是一个手动过程,未来我们使用
-v
卷的技术,可以实现
[root@docker home]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6df3271d6fe5 centos "/bin/bash" 2 minutes ago Up 2 minutes tender_dijkstra
[root@docker home]# docker attach 6df3271d6fe5 #进入当前正在停留的命令行
[root@6df3271d6fe5 home]# echo 'echo <h1>pakho</h1>' > /home/index.html #容器内创建测试的html主页文件
[root@6df3271d6fe5 home]# exit #退出容器
exit
[root@docker home]# docker ps #再次查看运行中的容器,发现没有
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
只要容器在,数据就存在,跟运行不运行没有任何关系,虽然容器停止,但是数据存在
#在真机上进行copy
[root@docker home]# docker ps -a #查看历史曾运行过的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6df3271d6fe5 centos "/bin/bash" 9 minutes ago Exited (0) 3 minutes ago tender_dijkstra
[root@docker home]# docker cp 6df3271d6fe5:/home/index.html /home/ #从容器的家目录下的html文件拷贝至当前/home
[root@docker home]# ls #查看文件是否存在,证明copy是成功的
index.html
常用命令小结
attach #当前shell下attach 连接指定运行镜像
build #通过Dockerfile定制镜像
commit #提交当前容器为新的镜像
cp #从容器中拷贝指定文件或者目录到宿主机中
create #创建一个新的容器,同run,但不启动容器
diff #查看docker容器变化
events #从docker服务获取容器实时事件
exec #在已存在的容器上运行命令
export #导出容器内容流作为一个tar归档文件[对应import]
history #展示一个镜像形成历史
images #列出系统当前镜像
import #从tar包中的内容创建一个新的文件系统映像[对应export]
info #显示系统相关信息
inspect #查看容器详细信息
kill #kill指定docker容器
load #从一个tar包中加载一个镜像[对应save]
login #注册或者登陆一个docker源服务器
logout #从当前Docker registry 退出
logs #输出当前容器日志信息
port #查看映射端口对应的容器内部源端口
pause #暂停容器
ps #列出容器列表
pull #从docker镜像源服务器拉取指定镜像或者库镜像
push #推送指定镜像或者库镜像至docker源服务器
restart #重启运行的容器
rm #移除一个或多个容器
rmi #移除一个或多个镜像[无容器使用镜像才可删除,否则需删除相关容器才可继续或 -f 强制删除]
run #创建一个新的容器并运行一个命令
save #保存一个镜像为一个tar包[对应load]
search #在docker hub中搜索镜像
start #启动容器
stop #停止容器
tag #给源中镜像打标签
top #查看容器中运行的进程信息
unpause #取消暂停容器
version #查看docker版本号
wait #截取容器停止时的退出状态值
Docker部署Nginx
- Docker hub 官方关于Nginx安装帮助文档
- 存在一个端口暴露的概念
[root@docker ~]# docker search nginx #搜索Nginx镜像
[root@docker ~]# docker pull nginx #下载镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest d1a364dc548d 3 weeks ago 133MB
#后台启动 --name:挂载名字 8000端口对于容器内服务器外部的地址 80为容器内部地址 8000外部端口映射80内部端口,nginx为启动
[root@docker ~]# docker run -d --name nginx01 -p 8000:80 nginx
f04d5b31908108656a4a0b7e8bd7a876b28f68dce260c5e4a5b2f93a81f6a915
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f04d5b319081 nginx "/docker-entrypoint.…" 22 seconds ago Up 21 seconds 0.0.0.0:8000->80/tcp, :::8000->80/tcp nginx01
#本机测试
[root@docker ~]# curl localhost:8000
Docker部署Tomcat
#之前的启动都是后台,停止了容器之后,容器还是可以查到,官方的使用一般用来测试,用完即删
[root@docker ~]# docker run -it --rm tomcat:9.0
[root@docker ~]# docker pull tomcat:9.0
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 9.0 5505f7218e4d 4 days ago 667MB
nginx latest d1a364dc548d 3 weeks ago 133MB
[root@docker ~]# docker run -d -p 9000:8080 --name tomcat01 tomcat
66a4a3f9371ec4620e93c8abe481a100c4287e6d39396d46475abf98555e8af0
[root@docker ~]# curl localhost:9000
- 此时发生报错,说明
tomcat
并不是完整的 - 但测试访问并没有问题
#进入tomcat容器
[root@docker ~]# docker exec -it tomcat01 /bin/bash
root@66a4a3f9371e:/usr/local/tomcat# cd webapps
root@66a4a3f9371e:/usr/local/tomcat/webapps# ls
root@66a4a3f9371e:/usr/local/tomcat/webapps#
- 发现问题,Linux命令少了!
- 没有
webapps
默认配置文件导致无法访问! - 原因,默认为最小镜像,所有不必要的都剔除掉,保证最小运行的环境
- 没有
#此时网站默认配置文件位于webapps.dist目录下
root@66a4a3f9371e:/usr/local/tomcat# cd webapps.dist/
root@66a4a3f9371e:/usr/local/tomcat/webapps.dist# ls
ROOT docs examples host-manager manager
#将配置文件复制进默认网站配置文件
root@66a4a3f9371e:/usr/local/tomcat# cp -r webapps.dist/* webapps
- 再次访问,部署成功!
Docker部署elasticsearch
安装elasticsearch
- 暴露端口很多!
- es十分耗内存
- es 的数据需要放置安全目录!挂载!
- Docker hub站点
#启动elasticsearch 下载安装一步到位
[root@docker ~]# docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.10.1
#启动了 Linux就卡住了
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ada4f09db9a elasticsearch:7.10.1 "/tini -- /usr/local…" About a minute ago Up About a minute 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch
- 通过
docker stats
查看cpu
状态 - es是十分耗内存的
#查看es是否安装成功
[root@docker ~]# curl localhost:9200
{
"name" : "8ada4f09db9a",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "08YOetapQd2LhpNsKZ4Q5g",
"version" : {
"number" : "7.10.1",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date" : "2020-12-05T01:00:33.671820Z",
"build_snapshot" : false,
"lucene_version" : "8.7.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
#查看docker容器cpu状态
[root@docker ~]# docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
8ada4f09db9a elasticsearch 0.32% 591.6MiB / 974.6MiB 60.71% 648B / 0B 8.3GB / 199MB 48
#解决MEM高消耗的问题,增加内存限制
#停止es
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ada4f09db9a elasticsearch:7.10.1 "/tini -- /usr/local…" 12 minutes ago Up 12 minutes 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch
[root@docker ~]# docker stop 8ada4f09db9a
8ada4f09db9a
#增加内存限制 -e 环境配置修改
[root@docker ~]# docker run -d --name elasticsearch06 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.10.1
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1721d45249d elasticsearch:7.10.1 "/tini -- /usr/local…" 39 seconds ago Up 37 seconds 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch06
#查看MEM
[root@docker ~]# docker stats a1721d45249d
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
a1721d45249d elasticsearch06 0.62% 428.4MiB / 974.6MiB 43.96% 648B / 0B 238MB / 3.63MB 46
[root@docker ~]# curl localhost:9200
以上是关于Docker——Docker常用命令+部署一些基本服务(NginxTomcatelasticsearch)的主要内容,如果未能解决你的问题,请参考以下文章
开发者必备丨Docker客户端常用命令分享,一文搞定Docker
开发者必备丨Docker客户端常用命令分享,一文搞定Docker