【docker系列】详解docker容器状态转换管理命令

这篇具有很好参考价值的文章主要介绍了【docker系列】详解docker容器状态转换管理命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【docker系列】详解docker容器状态转换管理命令


本文系docker系列专栏第六篇。docker容器有三种状态运行、停止、暂停,镜像可以创建、运行容器,镜像和容器也可以转换成tar压缩包进行存储。本文为大家介绍容器的状态转换命令及镜像创建运行容器、tar包导入导出相关的命令及使用场景。
【docker系列】详解docker容器状态转换管理命令
结合下文中的命令介绍来理解上面的这张图。

一、从镜像启动容器

从docker镜像启动一个容器的语法如下,使用docker run命令。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用options说明,docker createdocker run命令参数几乎一致,只是docker run创建并运行容器,docker create只创建(可以docker ps -a查看到)不运行容器。

option 作用
-d 守护进程,后台运行该容器
-v 目录映射,容器目录挂载到宿主机目录,格式:宿主机目录:容器目录
-p 指定端口映射,格式:主机(宿主)端口:容器端口
-P 随机端口映射,容器内部端口随机映射到主机的端口
–name nginx-zimug 容器名字nginx-zimug
-m, --memory bytes 设置容器使用内存最大值
-h, --hostname string 指定容器的 hostname
–dns 8.8.8.8 指定容器 dns 服务器8.8.8.8
-e JAVA_HOME=“路径” 设置环境变量,如JAVA_HOME
–rm 容器退出时,删除容器及容器目录

示例一:在后台(-d)运行一个名称(–name)为nginx-zimug的容器,将容器的80端口映射到宿主机80端口

docker run -d --name nginx-zimug -p  80:80  nginx

示例二:如果不加-d会在Linux终端下输出容器的标准输入输出日志,当退出终端时,容器停止运行。这种模式通常不用于生产,常用于调试容器。

docker run --rm --name nginx-zimug -p  80:80  nginx

--rm参数用于容器运行时停止之后,直接删除容器,而不是让容器进入stoped状态。
示例三-v 表示宿主机目录与容器目录的映射关系

docker run -d -p 80:80 \
--name nginx-prod \
-v /root/nginx/html:/usr/share/nginx/html \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/logs:/var/log/nginx  nginx

二、查看容器与日志

docker ps //查看运行中running状态的容器
docker ps –a //查看所有状态的容器(包含running、paused、stopped)
docker container ls  //等同于docker ps
docker container ls –a //等同于docker ps –a

查看的结果如下:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                    PORTS                               NAMES
1061ed186789   nginx     "/docker-entrypoint.…"   5 minutes ago   Up 5 minutes              0.0.0.0:80->80/tcp, :::80->80/tcp   nginx-zimug
  • CONTAINER ID :容器ID
  • IMAGE:镜像名称
  • COMMAND:容器内部软件脚本启动命令
  • CREATED: 容器创建的时间
  • STATUS:容器的运行状态
  • PORTS: 容器与宿主机的端口映射关系
  • NAMES: 容器的名称
docker logs 容器ID;   //查看容器日志标准输出

比如nginx服务的日志如下所示:
【docker系列】详解docker容器状态转换管理命令

三、进入容器内部操作系统

有的时候我们通过docker psdocker logs的信息很难判断容器内部服务的运行情况。这个时候我们就需要进入到容器内部操作系统,使用下面的命令。

docker exec -it 容器ID /bin/bash

进入到容器内部操作系统之后,想查看什么信息,就和常规使用linux命令是一样的。退出容器使用exit命令。

四、停止容器暂停容器

通过docker ps 找到处于运行状态的容器id或容器名称

docker stop 9be696a0c283 //停止正在运行容器
docker container stop nginx-zimug  //停止正运行容器(ID或Names)

执行该命令后容器进入stoped状态,不再提供服务,不占用宿主机资源。stopped状态的容器可以再次被启动。

docker pause 容器名/容器ID;  //暂停容器服务
docker unpause 容器名/容器ID; //恢复容器服务

除了stop停止容器,还有一种方法是暂停容器服务,如上命令所示。被暂停的容器不再对外服务,但是仍然占用宿主机资源。这种方式并不常用!

五、启动stopped状态的容器

通过docker ps -a可以找到处于stopped状态的容器信息。使用下面命令可以让stopped状态的容器再次进入运行状态。

docker start 容器名/容器ID

不论容器处于什么状态,如果想重启容器,可以使用下面的命令。

docker restart 容器名/容器ID   //重启容器(根据ID或NAMES)

六、删除容器

如果想要删除容器,一定要让容器处于stopped状态才可以。

docker rm 容器ID

【docker系列】详解docker容器状态转换管理命令

七、export与import

将容器导出为tar包,生成的是该容器的快照,复刻的是容器当前的linux系统环境

docker export nginx-zimug > nginx-zimug.tar

如下所示的命令,将tar包导入生成一个镜像,该镜像的命名名称是new-nginx-zimug

 docker import - new-nginx-zimug < nginx-zimug.tar

八、commit

假设我们有这样一种场景,容器启动之后发现一个配置文件参数写错了,然后通过docker exec -it进入容器内部对配置文件进行了修改。
我们已经介绍过,一旦容器发生重启,针对容器所做的任何写操作全部丢失。那么我们为了将容器修改之后的状态保存下来,可以使用commit将容器运行时快照,保存为本机的一个镜像。

docker commit -a "zimug" -m "comment" <容器ID或容器名称> <镜像名称>

比如使用下面的命令将容器nginx-zimug保存为镜像nginx:zimug

docker commit -a "zimug" -m "comment" nginx-zimug nginx:zimug

通过docker images查看commit产生的镜像

# docker images
REPOSITORY        TAG       IMAGE ID       CREATED          SIZE
nginx             zimug     7e4e3219870e   8 seconds ago    142MB

九、查看容器配置及资源使用情况

查看容器配置信息,该命令会返回一个json格式信息,如网络配置、环境变量配置、端口配置、数据卷配置等信息。

docker inspect <容器ID或容器名称>

查看容器资源使用情况,使用docker stats命令,可以查看CPU使用率,内存使用率 、网络IO、磁盘IO、进程号等信息。

# docker stats nginx-zimug
CONTAINER ID   NAME          CPU %     MEM USAGE / LIMIT    MEM %     NET I/O     BLOCK I/O     PIDS
ec6953bce17b   nginx-zimug   0.00%     1.41MiB / 990.9MiB   0.14%     656B / 0B   0B / 7.68kB   2

使用docker top命令可以查看容器内进程信息。如下问所示,一个master进程,一个worker进程。

# docker top nginx-zimug 
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                6169                6150                0                   10:27               ?                   00:00:00            nginx: master process nginx -g daemon off;
101                 6217                6169                0                   10:27               ?                   00:00:00            nginx: worker process

【docker系列】详解docker容器状态转换管理命令文章来源地址https://www.toymoban.com/news/detail-424488.html

到了这里,关于【docker系列】详解docker容器状态转换管理命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生系列之docker的容器管理实战

    之前我们已经探讨过了docker的镜像,看了下时间,距离上次介绍容器的镜像已经过去两个月了, 如果你已经忘记了,可以直奔专栏:容器管理 从今天开始,我们要探讨docker 的容器了,docker的容器都是从镜像开始创建的,涉及到的操作有: 创建容器,停止容器,进入容器,删

    2024年02月10日
    浏览(37)
  • 【云原生】Docker中容器管理常用所有命令

    1.docker 容器创建流程   2.容器运行本质 Docker 容器存在的意义就是为了运行容器中的应用,对外提供服务,所以启动容器的目的就是启动运行该容器中的应用。容器中的应用运行完毕后,容器就会自动终止。所以如果不想让容器启动后立即终止运行,则就需要使容器应用不能

    2024年02月14日
    浏览(32)
  • 云原生系列之管理docker容器中的数据管理实战

    在生产环境中使用docker,一方面需要对数据进行保存或者在多个容器之间进行数据共享; 另一方面在docker的容器被删除之后,并不会保留容器的状态信息。 想要实现docker容器的信息持久化,就涉及到docker的数据管理,今天我们就来聊聊docker数据管理那些事。

    2024年02月12日
    浏览(29)
  • Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

    简介 Docker是一种流行的容器化平台,它允许开发人员在独立、可移植的环境中构建、打包和部署应用程序。在使用Docker时,常常需要在Docker容器和主机之间进行文件的复制和共享。Docker提供了一个名为 docker cp 的命令,可以轻松地在容器和主机之间复制文件和目录。本文将详

    2024年03月23日
    浏览(51)
  • docker导入导出镜像、导入导出容器的命令详解以及使用的场景

    这是一对操作,用于处理 Docker 镜像。这个操作会将所有的镜像层以及元数据打包到一个 tar 文件中。然后,你可以使用 docker load 命令将这个 tar 文件导入到任何 Docker 环境中。例如: 这种方式主要用于分享或迁移整个镜像,包括所有版本、标签和历史。 这也是一对操作,用

    2024年02月16日
    浏览(34)
  • 软件测试|Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

    简介 Docker是一种流行的容器化平台,它允许开发人员在独立、可移植的环境中构建、打包和部署应用程序。在使用Docker时,常常需要在Docker容器和主机之间进行文件的复制和共享。Docker提供了一个名为 docker cp 的命令,可以轻松地在容器和主机之间复制文件和目录。本文将详

    2024年02月12日
    浏览(36)
  • 【Docker系列】从头学起 Docker——docker start 命令详解

    docker start:启动一个或多个已经被停止的容器 docker stop:停止一个或多个运行中的容器 docker restart:重启一个或多个容器 感觉没啥重要的 options,需要用到再补上 option 作用 -t, --time 杀死容器之前等待停止的秒数(默认为10) 目前只有一个 nginx 容器

    2024年02月14日
    浏览(29)
  • 【docker常用命令系列】Docker Build语法用法示例详解

    Docker Build是Docker提供的一个命令,用于根据Dockerfile构建自定义的镜像。通过Docker Build,可以将应用程序、环境和依赖项打包到一个可移植的容器中,使得应用在不同环境下都能以相同的方式运行。 docker build [OPTIONS] PATH | URL | - 是 docker build 命令的语法说明。下面解释每个部分

    2024年04月14日
    浏览(23)
  • 【宝藏系列】Linux 常用磁盘管理命令详解

    Linux磁盘管理常用三个命令为 df、du和fdisk。 df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 语法: 选项与参数: 实例 1 将系统内所有的文件系统列出来! 在 Linux 底下如果 df 没有加任何选项

    2024年02月14日
    浏览(36)
  • 软件测试|全面解析Docker Start/Stop/Restart命令:管理容器生命周期的必备工具

    简介 Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。在使用Docker时,经常需要管理容器的生命周期,包括启动、停止和重启容器。本文将详细介绍Docker中的 docker start 、 docker stop 和 docker restart 命令,帮助您全面了解如何管理容器的运行状态。 在Docker中,容

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包