实验环境

CentOS 7.5

容器

容器是镜像的运行实例。不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层;同时,容器中的应用进程处于运行状态。

新建容器

[root@kvm ~]# docker create -it docker.io/centos:7.3.1611
1cfd243950c3590d642d84c1c71ad3737adb65a74f10b6617bc174e867c02159
[root@kvm ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cfd243950c3 docker.io/centos:7.3.1611 "/bin/bash" 11 seconds ago Created determined_booth
c086bbf46c29 www.wholj.com:7.2 "/bin/bash" 25 minutes ago Up 23 minutes epic_hugle
b9783f331187 www.wholj.com:7.3 "/bin/bash" About an hour ago Exited (0) About an hour ago nostalgic_rosalind
e3fabe002814 www.wholj.com:7.3 "/bin/bask" About an hour ago Created romantic_montalcini
0573b7db7f4c www.wholj.com:7.3 "/bin/bash" 2 days ago Exited (0) 2 days ago determined_heyrovsky
90d3b762f848 docker.io/centos:7.3.1611 "/bin/bash" 2 days ago Exited (0) 2 days ago amazing_pike
8b06ff1ad2f5 docker.io/centos:7.3.1611 "/bin/bask" 2 days ago Created compassionate_ritchie
cf7b76228bb9 docker.io/centos:7.3.1611 "/bin/bash" 3 days ago Exited (0) 2 days ago elegant_wiles
e71feffdd925 docker.io/centos:latest "/bin/bash" 4 days ago Exited (127) 4 days ago sharp_curran
9217638356cb docker.io/centos:latest "/bin/bash" 4 days ago Exited (0) 4 days ago wonderful_franklin

container ID为1cfd243950c3的即为刚新建的容器;使用docker create新建的容器处于停止状态,可以使用docker start命令来启动它。

启动容器

[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c086bbf46c29 www.wholj.com:7.2 "/bin/bash" 36 minutes ago Up 34 minutes epic_hugle
[root@kvm ~]# docker start 1cfd243950c3
1cfd243950c3
[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cfd243950c3 docker.io/centos:7.3.1611 "/bin/bash" 19 minutes ago Up 2 seconds determined_booth
c086bbf46c29 www.wholj.com:7.2 "/bin/bash" 44 minutes ago Up 42 minutes epic_hugle

注:命令docker ps可查看当前处于运行状态的容器,docker ps -a查看当前所有容器,包括未运行的容器。

新建并启动容器

要想新建并同时启动容器,可用docker run,此命令等价于先执行docker create,再执行docker start

eg:下面的命令行使用镜像docker.io/centos:latest新建一个ring器并将输出一个“docker test.”,之后容器自动终止:

[root@kvm ~]# docker run docker.io/centos:latest /bin/echo "docker test."
docker test.

通过docker ps可看到刚使用docker run新建的容器不在运行容器列表中(列表中不包含IMAGE为docker.io/centos:latest的容器):

[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1cfd243950c3 docker.io/centos:7.3.1611 "/bin/bash" 31 minutes ago Up 11 minutes determined_booth
c086bbf46c29 www.wholj.com:7.2 "/bin/bash" 56 minutes ago Up 54 minutes epic_hugle

让容器在后台以守护态运行

要想让容器在后台以守护态形式运行,可通过-d参数来实现;下边的命令行会让容器在后台运行:

[root@kvm ~]# docker run -d www.wholj.com:7.2 /bin/sh -c "while true;do echo hello world;sleep 1;done"
96c3de6f5678ed40c351f8a6a5871053ea42fd9ff4b8da64ac7afd0b8409533d
[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96c3de6f5678 www.wholj.com:7.2 "/bin/sh -c 'while..." 4 seconds ago Up 3 seconds agitated_elion

通过docker ps可查看到此容器处于运行状态。

注:docker ps命令等价于docker container ls命令。

查看容器日志

要想获取容器的输出信息,可通过docker logs CONTAINER_ID来实现。

命令语法:

[root@kvm ~]# docker logs --help
Usage: docker logs [OPTIONS] CONTAINER
Fetch the logs of a container
Options:
--details 打印详细信息
-f, --follow 持续输出
--help 打印帮助信息
--since string 输出从某个时间开始的日志
--tail string 输出最近的若干日志
-t, --timestamps 显示时间戳信息

暂停和停止容器

主要介绍Docker容器的pause/unpause、stop和prune子命令。

  • 暂停容器

    暂停一个正在运行的容器使用docker pause CONTAINER,命令语法:
[root@kvm ~]# docker pause --help
Usage: docker pause CONTAINER [CONTAINER...]
Pause all processes within one or more containers
Options:
--help 打印帮助信息

查看当前处于运行状态的容器并暂停

[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96c3de6f5678 www.wholj.com:7.2 "/bin/sh -c 'while..." 24 minutes ago Up 24 minutes agitated_elion
[root@kvm ~]# docker pause 96c3de6f5678
96c3de6f5678
[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96c3de6f5678 www.wholj.com:7.2 "/bin/sh -c 'while..." 24 minutes ago Up 24 minutes (Paused) agitated_elion

docker ps命令执行返回结果前后的STATUS对比,后者多了一个(Paused),即该容器处于暂停状态。处于paused状态的容器,可以使用docker unpause CONTAINER_ID命令来将之恢复到运行状态:

[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96c3de6f5678 www.wholj.com:7.2 "/bin/sh -c 'while..." 31 minutes ago Up 31 minutes (Paused) agitated_elion
[root@kvm ~]# docker unpause 96c3de6f5678
96c3de6f5678
[root@kvm ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96c3de6f5678 www.wholj.com:7.2 "/bin/sh -c 'while..." 31 minutes ago Up 31 minutes agitated_elion
  • 停止容器

    • 等待一段时间再停止

      停止一个正在运行的容器使用docker stop CONTAINER,命令语法:
[root@kvm ~]# docker stop --help
Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
Stop one or more running containers
Options:
--help 打印帮助信息
-t, --time int Seconds to wait for stop before killing it (default 10)

该命令首先向容器发送SIGTERM信号,等待一段时间后(-t 参数指定,默认为10s),再发送SIGKILL信号来终止容器。

当执行了stop命令后,再执行docker container prune命令,会自动清除掉所有处于停止状态的容器。

* 直接停止容器

可通过docker kill CONTAINER_ID直接发送SIGKILL信号来强行终止容器。

[root@kvm ~]# docker kill --help
Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...]
Kill one or more running containers
Options:
--help Print usage
-s, --signal string Signal to send to the container (default "KILL")
  • 当docker容器中的应用终结后,容器也会自动终止。

docker容器 - 新建容器、启动容器、暂停容器和停止容器的更多相关文章

  1. asp.net core容器&mysql容器network互联 & docker compose方式编排启动多个容器

    文章简介 asp.net core webapi容器与Mysql容器互联(network方式) docker compose方式编排启动多个容器 asp.net core webapi容器与Mysql ...

  2. 使用Docker构建nginx容器,并且启动后不会自动退出

    为什么docker运行后就自动退出? docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker 容器pid挂了,那么docker容器 ...

  3. docker启动,重启,停止容器

    docker 启动已经停止的容器 docker start 容器ID或容器名 docker 停止容器 docker stop 容器ID或容器名 docker 启动一个容器 -d:后台运行 -p:端口映 ...

  4. Docker 启动与停止容器

    启动已运行过的容器 docker start 容器名称|容器id 如: docker start mycentos 启动所有运行过的容器(注意:反单引号` `), docker ps -a -q 是查 ...

  5. Docker部署启动错误,需要手动进入Docker的容器里,启动程序,排查错误

    #docker-compose build --no-cache //重新创建容器,不管有没有 #docker-compose up #docker-compose up -d //后台启动并运行容器 ...

  6. docker 1.13.1 启动容器过程中mount报错

    docker 1.13.1 启动container 问题 [root@openfalcon_transfer1 harbor]# docker run -it --name test busybox ...

  7. 8天入门docker系列 —— 第二天 通过一个aspnetcore程序加深对容器的理解

    我们知道容器是一个打包了应用和相关依赖的盒子,那怎么去操控这个盒子呢? 这一篇我通过一个简单的aspnetcore程序来加深对盒子的理解,使用之前先 安装一下Docker的环境. 一:Docker的安 ...

  8. Docker安装基本命令操作,带你了解镜像和容器的概念!

    上一章节我们了解了Docker的基本概念,以及相关原理.这一章节进行实操. <Docker这么火爆.章节一:带你详尽了解Docker容器的介绍及使用> 一.Docker安装 声明:Dock ...

  9. Docker 基本概念(三)-生命周期详解(镜像、容器、仓库)

    Docker三大组件:镜像.容器.仓库.  一.镜像 1 从仓库获取镜像 #一.从仓库获取镜像,帮助命令:docker pull -help 命令:docker pull [选项] [docker R ...

随机推荐

  1. vue自学入门-5(vuex state)

    vue自学入门-1(Windows下搭建vue环境) vue自学入门-2(vue创建项目) vue自学入门-3(vue第一个例子) vue自学入门-4(vue slot) vue自学入门-5(vuex ...

  2. hadoop基本组件原理小总结

    Hadoop基础知识小总结  这是本人(学生党)在学习hadoop半个学期后根据教科书后习题做的一个小总结,如有发现错误还请各位海涵并指出,我会及时改过来的,谢谢! 目录 Hadoop基础知识小总结. ...

  3. canvas转盘转动?

    怎么实现类似转盘转动的效果? 现在这种实现思路是,canvas每次draw()并不是让图形在旋转,而是让每一份的颜色改变到达好像是转动的效果, 但是现在有一个问题,一开始渲染的颜色数量于份数是相同的, ...

  4. 翻转引起 cocos studio 引擎与cocos2d 代码相同坐标显示不同

    使用setFlippedX后,又改变锚点为1.此时代码中坐标需要相对于cocos studio 中增加它本身的width,因为(0.5,0.5)是相对于自己中点的翻转,不变坐标.而(1,0.5)是相对 ...

  5. LaTeX技巧003:实现一个章标题

    代码如下: \documentclass[11pt]{book} \usepackage{graphicx} \usepackage{CJKfntef} \usepackage{color} \mak ...

  6. #助力CSP2019# OI中容易出现的**错误汇总

    多测不清空,爆0两行泪 3年OI一场空,不开long long见祖宗 线段树空间需要开4倍 读入有负数的时候,如果要写快读,要识别负号 持续更新

  7. Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type

    问题描述 将项目挂载到 Myeclipse 的 tomcat 上,启动 tomcat ,报错“Initialization of bean failed; nested exception is ja ...

  8. EF CodeFirst 之 Fluent API

    如何访问Fluent API: 在自定义上下文类中重写OnModelCreating方法,在方法内调用. 注:用法基本一样,配置类中的this就相当于modelBuilder.Entity<Pe ...

  9. SpringBoot集成flowable碰见DMN不能初始化

    在idea创建了SpringBoot项目,集成flowable,运行的时候DMN引擎初始化失败,花了一天时间也没解决. 抱着试试的态度重新建立一个项目,加入同样的依赖,成功运行. 但把成功运行的项目配 ...

  10. 【牛客小白月赛21】NC201604 Audio

    [牛客小白月赛21]NC201604 Audio 题目链接 题目大意: 给出三点 ,求到三点距离相等的点 的坐标. 解析 考点:计算几何基础. 初中蒟蒻表示不会什么法向量.高斯消元..qwq 方法一: ...