【云原生】Docker常用命令和实战

上一篇我们说了一些基本的命令,这一篇我就来对其他常用命令进行补充和基础实战。

常用的其他命令

1. 后台启动容器

docker run -d 镜像名
这里有个坑,docker 容器使用后台运行,就必须要有一个前台进程,docker发现没有应用启动服务,没有前台进程,就会自动停止。

2. 查看日志

docker logs -tf -n 容器id n为显示条数
docker logs -t -f --tail + num +容器id num为显示条数
可以自己编写一段脚本进行检验:
docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 2;done "

docker logs --help 查看日志命令帮助

【云原生】Docker常用命令和实战_第1张图片
【云原生】Docker常用命令和实战_第2张图片

3. 查看docker容器内的进程信息

docker top + 容器id

在这里插入图片描述

4. 查看详细数据

docker inspect + 容器id

【云原生】Docker常用命令和实战_第3张图片
里面有许多关于该容器的信息。大家可以自己摸索摸索。

5. 进入当前正在运行的容器

docker exec -it 容器id bashShell
进入容器后开启一个新的终端(常用),可以在里面操作

【云原生】Docker常用命令和实战_第4张图片

docker attach 容器id
直接进入当前正在执行的终端,不会启动新的进程

在这里插入图片描述

6. 从容器内拷贝文件到主机上

docker cp 容器id:容器内路径 目的的主机路径

我们先在容器内创建一个helloDocker.py文件,可以看到当我用exec方式进入再退出该容器依旧存在,当我用attach 进入再退出时该容器就停止了!这也对应了上一个命令的解释。

【云原生】Docker常用命令和实战_第5张图片
docker cp 命令是不管你容器停止还是运行都可以进行复制拷贝的只要你不把该容器删除就可以进行拷贝。
在这里插入图片描述
如图,已经将文件拷贝过来了!

7. 查看docker状态

docker stats
查看状态时是会每秒刷新的!

【云原生】Docker常用命令和实战_第6张图片

一. 测试Elasticsearch

我们测试elasticsearch就不傻乎乎的直接安装官方文档给的命令执行,因为我的服务器是学习机,而elasticsearch又是非常的占内存的,如果直接按照官方文档进行安装我的服务器很卡爆所以我们需要对安装命令进行修改,当然如果你的服务器或虚拟机的内存比较大或者你就是想尝试一下也可以直接安装,到时stop掉它就行。
官方命令:docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
这里-- net网络配置也可以先不配后续再来,然后使用-e来配置最小和最大的占用内存
修改为:docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:8.2.0

在这里插入图片描述
可以看到已经运行成功了,
在这里插入图片描述
可以看到已经限制了大小了并且操作起来也不会卡了。

二. 测试nginx

首先如果你需要选择版本的话推荐官网搜索,不然的话也可以直接命令搜索。
【云原生】Docker常用命令和实战_第7张图片
下载nginx
【云原生】Docker常用命令和实战_第8张图片
【云原生】Docker常用命令和实战_第9张图片
上图中的容器名应该为镜像名才对 (打错字懒得改了)

然后在网页访问当前服务器的域名加主机端口号测试一下,成功
【云原生】Docker常用命令和实战_第10张图片
在这里插入图片描述

同时我们也可以用docker run -it --rm + 镜像名:tag来进行测试。这种情况就是用完立即删除容器,一般做测试使用。

提交一个镜像(commit)

接下来我就带大家提交一个镜像,命令:docker commit -a="作者名" -m="提交说明" 容器id 容器名(自定义):tag

首先我先从本机拷贝过去一份,当然也可以用数据卷,但是这放到下一篇说我们先用一些比较简单的方式操作。
docker cp 本机路径 容器id:容器路径 这里我用nginx演示

当我没加自定义的html时
【云原生】Docker常用命令和实战_第11张图片
进行拷贝
在这里插入图片描述
结果
【云原生】Docker常用命令和实战_第12张图片
【云原生】Docker常用命令和实战_第13张图片

可以看到我自己的html已经拷贝成功了,这时我们要想保存这个容器持续使用就可以用提交命令进行提交生成一个新的镜像,后续还可以push到仓库就像我们常常提交代码到github一样把镜像提交到dockerHub这样就可以直接下载你的镜像进行使用。
【云原生】Docker常用命令和实战_第14张图片
这样就生成了一个新的镜像了。这个应该很好理解。

然后我们也可以直接试试这个镜像啊,先停止之前运行的那个nginx容器,再来试。

【云原生】Docker常用命令和实战_第15张图片
这时再去网页试试,欧克已经成功了。网页链接在这,大家也可以去玩玩。

看完的同学多去实践手敲,就基本算是入门了!

你可能感兴趣的:(云原生,docker,容器,运维)