前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker学习4-常用命令之重要的容器命令

Docker学习4-常用命令之重要的容器命令

原创
作者头像
凯哥Java
发布2022-12-06 09:58:20
3400
发布2022-12-06 09:58:20
举报
文章被收录于专栏:凯哥Java凯哥Java
ip_image002.jpeg
ip_image002.jpeg

本文是Docker学习系列教程中的第四篇。本文是Docker常用命令中的重要命令。为什么说重要呢?因为这些命令,在以后开发过程中,会经常使用到。比如:怎么查看容器中运行的日志?怎么查看容器运行的进程?怎么导出自己制作的容器?怎么导入从其他地方获取到的容器呢?以下就是本文主要内容:

clipboard.png
clipboard.png

1:启动守护式容器(后台启动)

在实际工作时候,大部分场景下,我们都希望docker的服务是在后台运行的。比如,我们运行了一个Redis服务,不可能一直让命令行窗口保存打开的,如果关掉,Redis服务就挂掉了。这种情况是肯定不行了。我们一般运行Redis都是后台运行的。那么Docker怎么后台运行呢?这就需要使用到以后台方式启动容器的命令,命令公式:

docker run -d 容器名称

clipboard.png
clipboard.png

再来回顾下前台启动的命令:

docker -it 镜像名称[option]

clipboard.png
clipboard.png

2:查看容器日志

容器已经以后台守护进程方式运行中,那么怎么查看这个容器的log日志呢?这就需要使用到查看容器日志的命令了。命令公式:

docker logs 容器ID

还以上文,我们后台启动的redis为例,查看redis的日志:

clipboard.png
clipboard.png

3:查看容器内运行的进程

此命令,是查看某个容器的进程PID的。命令公式:

docker 命令 容器id

比如我们要查看上图中,redis服务器的情况。如果在正常物理机,查看Linux服务情况使用的是top命令。所以在docker中,使用 docker 命令 容器id。如下图:

clipboard.png
clipboard.png

4:查看容器内部细节:

我们可以通过这个命令查看容器的更多详细信息。命令公式为:

docker inspect 容器ID

clipboard.png
clipboard.png

5:进入正在运行的容器并以命令行交互

我们怎么将运行在docker中的容器,停掉呢?docker提供了两种退出容器命令:exect -it 和attach。这两种退出方式有什么区别呢?下面大家就跟着凯哥一起学学这两个命令

5.1:docker exec -it 容器id

先来看看docker exec的帮助:

clipboard.png
clipboard.png

我们先前台启动ubuntu.然后使用ctrl+q+p命令退出命令行,但是不杀死进程。在ps

clipboard.png
clipboard.png

可以看到Ubuntu在后台运行的。容器id为:802abbcf5086

那么如果,我们想要再次进入到Ubuntu里面,怎么办?

我们进入Ubuntu的时候命令是:docker run -it ubuntu /bin/bash

所以,如果想再次进入的话,使用exec命令。具体命令如下

docker exec -it 802abbcf5086 /bin/bash

1665657421216.png
1665657421216.png

5.2:重写进入 docker attach 容器id

clipboard.png
clipboard.png

exec和attach两者之间的区别是什么?

attach直接进入容器启动命令的终端,不会启动新的进程,用exit退出的话,会导致容器的停止

exec是在容器中打开一个新的终端,并且可以启动新的进程,使用exit退出后,不会导致容器的停止。

clipboard.png
clipboard.png

重新进入容器,推荐使用 docker exec命令!!! 因为exec不会导致容器停止。

Docker停止命令总结

clipboard.png
clipboard.png

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

有时候会有这样的场景,我们需要将容器内的文件从容器中复制到宿主机上,这个场景就是从人哪个区到主机的。docker也支持这种场景。使用到的命令公式如下:

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

比如我们在上文中的Ubuntu的tmp目录下创建了一个a.txt文件。现在想要把docker中Ubuntu容器中/tmp/a.txt文件copy到宿主机上。怎么操作呢?

命令公式:docker cp 容器id:容器内内部全路径 目的主机路径

clipboard.png
clipboard.png

7:导入和导出容器

这个命令也是比较重要的。比如我们自己制作了一个docker镜像,想要把这个镜像发送给其他人应该使用什么命令?我得到了别给的一个容器,怎么导入到自己本地的docker上来运行呢?下面我们就一起来学学这两个命令。

导出:export 导出容器的内容流作为一个tar归档文件【对应import命令】

导入:import 从tar包中的内容创建一个新的文件系统在导入为镜像【对应export】

案例:

docker export 容器id > 文件名称.tar

比如我们将上文提到的Ubuntu导出为abc.tar。命令如下:

clipboard.png
clipboard.png

假设我们不小心把Ubuntu的镜像个rm -f了。那么怎么恢复呢?

clipboard.png
clipboard.png

可以使用下面命令:

cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号

clipboard.png
clipboard.png

查看导入镜像结果:

clipboard.png
clipboard.png

重启启动导出的镜像:

clipboard.png
clipboard.png

总结:

最后,我们来总结下。如下图:

clipboard.png
clipboard.png

一些常用命令介绍一:

clipboard.png
clipboard.png

一些常用命令介绍二:

clipboard.png
clipboard.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1:启动守护式容器(后台启动)
  • 2:查看容器日志
  • 3:查看容器内运行的进程
  • 4:查看容器内部细节:
  • 5:进入正在运行的容器并以命令行交互
    • 5.1:docker exec -it 容器id
      • 5.2:重写进入 docker attach 容器id
        • exec和attach两者之间的区别是什么?
          • Docker停止命令总结
          • 7:导入和导出容器
          • 总结:
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档