1、容器是独立运行的一个或一组应用,及他们的运行环境。容器是Docker中的一个重要的概念。

2、docker容器的启动有三种方式
a.交互方式,基于镜像新建容器并启动
例如我们可以启动一个容器,打印出当前的日历表
[root@rocketmq-nameserver4 ~]# docker run my/python:v1 cal ##my/python:v1为镜像名和标签

我们还可以通过指定参数,启动一个bash交互终端。
[root@rocketmq-nameserver4 ~]# docker run -it my/python:v1 /bin/bash

参数-t让Docker分配一个伪终端并绑定在容器的标准输入上,-i让容器的标准输入保持打开。

使用docker run命令来启动容器,docker在后台运行的标准操作包括
1.检查本地是否存在指定的镜像,不存在则从公有仓库下载
2.使用镜像创建并启动容器
3.分配一个文件系统,并在只读的镜像层外面挂载一层可读可写层
4.从宿主主机配置的网桥接口中桥接一个虚拟接口道容器中去
5.从地址池分配一个ip地址给容器
6.执行用户指定的应用程序
7.执行完毕之后容器被终止

my/sinatra:v2基于training/sinatra镜像进行修改后的镜像,training/sinatra为公有仓库上的镜像。

b、短暂方式,直接将一个已经终止的容器启动运行起来
可以使用docker start命令,直接将一个已经终止的容器启动运行起来。

[root@rocketmq-nameserver4 ~]# docker run my/python:v1 /bin/echo hello test
hello test
命令执行完,控制台会打印"hello test",container就终止了,不过并没有消失,
可以用"docker ps -n 5 "看一下最新前5个的container,第一个就是刚刚执行过的container,可以再次执行一遍:docker start container_id

不过这次控制台看不到”hello test”了,只能看到ID,用logs命令才能看得到:docker logs container_id。
可以看到两个”hello test”了,因为这个container运行了两次。

c、daemon方式,守护态运行
即让软件作为长时间服务运行,这就是SAAS啊!

例如我们启动centos后台容器,每隔一秒打印当天的日历。
$ docker run -d centos /bin/sh -c "while true;do echo hello docker;sleep 1;done"

启动之后,我们使用docker ps -n 5查看容器的信息

要查看启动的centos容器中的输出,可以使用如下方式:
$ docker logs $CONTAINER_ID ##在container外面查看它的输出
$ docker attach $CONTAINER_ID ##连接上容器实时查看:

3、终止容器
使用docker stop $CONTAINER_ID来终止一个运行中的容器。并且可以使用docker ps -a来看终止状态的容器。

终止状态的容器,可以使用docker start来重新启动。

使用docker restart命令来重启一个容器。

Docker容器的创建、启动、和停止的更多相关文章

  1. docker 源码分析 五(基于1.8.2版本),Docker容器的创建

    前面讲到了docker容器得镜像,镜像其实是docker容器的静态部分,而docker容器则是docker镜像的动态部分,即启动了一个进程来运行,本篇最要来分析一下怎样创建并运行一个容器. 创建一个容 ...

  2. MySQL Docker容器实例创建并进入MySQL命令行

    首先需要明白的一点是: docker镜像是一个模版,docker容器是一个实例,它可以被启动与关闭. 我们需要先有MySQL的docker镜像,使用命令: docker pull mysql 拉取最新 ...

  3. Docker容器技术-创建一个简单的Web应用

    一.创建一个简单的Web应用 1.identicon 基于某个值而自动产生的图像,这个值是IP地址或用户名的散列值. 用途: 通过计算用户名或IP地址的散列值,在网站上提供用于识别用户的图像,以及自动 ...

  4. Docker----与Asp.net core 的完美结合,在docker容器中创建Asp.Net Core 项目

    在腾讯云上买了一个小容量的服务器,搭建一个docker环境后,可以尝试做一些单系统做起来很麻烦的东西.譬如说,你在windows OS或UbuntuOS中,突然想玩CentOS了,你可以选择将电脑再装 ...

  5. 如何在Linux上创建,列出和删除Docker容器

    本篇文章介绍的内容是关于在Linux机器上创建,列出和删除docker容器,下面我们来看具体的内容. 1.启动Docker容器 使用下面的命令启动新的Docker容器.这将启动一个新的容器,并为你提供 ...

  6. Centos7 docker容器启动后添加端口映射

    docker容器启动后添加端口映射的两种方法: 一.通过修改防火墙策略添加端口映射 docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时, ...

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

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

  8. Docker 入门之docker容器创建

    使用docker容器的大多数人都是因为想要隔离不同运行环境的差异,使得自己的应用能更好的移植和部署.那么我们来看看掌握docker需要掌握哪些方面. 1,搭建docker环境 2,编译镜像并将其运行成 ...

  9. docker容器怎么设置开机启动

    https://my.oschina.net/lwenhao/blog/1923003 docker服务器.以及容器设置自动启动 一.docker服务设置自动启动 说明:适用于yum安装的各种服务 查 ...

随机推荐

  1. [SoapUI] 如何同时调用Global Script Library(放在SoapUI安装目录)和项目特有的Script Libary(放在项目代码下)

    SoapUI 支持引入多个package: Global Script library : 在SoapUI工具File->Preference中设置Project Script Library: ...

  2. 远程连接centos6.5

    安装上传下载工具: 直接yum -y install lrzsz 下载数据到本地下载目录:sz filename1 filename2 … 上传数据到远程:执行rz –be 命令,客户端会弹出上传窗口 ...

  3. Asterisk 11 chan_sip.c: Failed to authenticate device 看不到IP的问题

    Asterisk 11 chan_sip.c: Failed to authenticate device 看不到IP的问题   没有验证过 原文地址 http://www.coochey.net/? ...

  4. tomcat是否有必要配置环境变量(摘)

    之前发表了一篇关于如何安装和配置Tomcat的文章,而最近在开发项目的时候总是报错.后来被公司的大神问了一句:是谁告诉你Tomcat是需要配置环境变量的? 作为新手的我瞬间整个人都不好了!于是偷偷百度 ...

  5. Ngui使用随心记

    Ngui的一些基础使用心得! BB:首先BB一下我觉得NGUI和UGUI哪个好?我首推UGUI,先不说是官方内置,在使用的方便性上也要好很多,而且NGUI停止更新了!还有就是NGUI有BUG! Ngu ...

  6. (转载)linux 常用命令

    出处:http://www.cnblogs.com/vamei $ 命令行提示符 粗体表示命令 斜体表示参数 filename, file1, file2 都是文件名.有时文件名有后缀,比如file. ...

  7. UniGUI的布局使用说明

    (unigui的页面布局还是很强大的,基本什么的排版都能搞好.前面部分为原文章翻译,翻译不一定很准确,就能看吧,后面有使用说明,有什么不明白的欢迎加我QQ(910300653)一起交流学习) 一.布局 ...

  8. JavaScrip继承图文总结

    JavaScript有多种继承模式,总结起来用到的方法有:原型链的传递.构造函数的借用.对象的复制.     这篇文章讲得很清晰,让我们明白:所有JS对象源于null,并通过原型指针和原型对象来实现继 ...

  9. String、StringBuffer、StringBuild的区别

    他们之间的区别主要在两个重大方面 一.处理速度上 StringBuild > StringBuffer > String 原因: String : 它定义为字符串的常量,定以后不能修改 S ...

  10. redis key的过期时间

    设置redis key的生存过期时间 Redis 有四个不同的命令可以用于设置键的生存时间(键可以存在多久)或过期时间(键什么时候会被删除) : EXPlRE 命令用于将键key 的生存时间设置为tt ...