03_Docker入门(上)之容器创建、容器使用、容器删除
运维架构服务docker:docker入门
一、确保docker就绪
查看docker程序是否存在,功能是否正常
Docker可执行程序的info命令,该命令会返回所有容器和镜像的数量、Docker使用的执行驱动和存储驱动以及Docker的基本配置。
二、构建第一个容器
启动容器,用docker run命令创建容器
docker run -i -t centos /bin/bash
命令解释:告诉docker执行docker run命令,并指定了-i和-t两个命令行参数,-i: 以交互模式运行容器,通常与 -t 同时使用;-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
命令中用的是centos镜像,首先docker会检查本地是否存在centos镜像,如果本地还没有该镜像的话,那么docker就会连接官方维护的Docker Hub Registry,查看Docker Hub中是否有该镜像。Docker一旦找到该镜像,就会下载该镜像并将其保存到本地宿主机。
之后,Docker在文件系统内部用这个镜像创建一个新容器。该容器拥有自己的网络、IP地址。以及一个用来和宿主机进行通信的桥接网络接口。最后,告诉Docker在新容器中要运行什么命令,本例中运行/bin/bash命令启动了一个Bash shell。
当容器创建完毕后,Docker就会执行容器中的/bin/bash命令,这时就会看到容器内的shell。[root@4f6fdd17f86f /]#
三、容器使用
1、容器ID
可以看到hostname就是容器的ID
查看cat /etc/hosts
Docker已在Hosts文件为该容器的IP地址添加了一条主机配置项。
2、容器中安装软件
容器中安装vim软件,可以在容器中做任何想做的事情,退出的时候输入exit,就可以返回到centos宿主机的命令行提示符。
[root@4f6fdd17f86f /]# yum install vim
3、退出容器
用docker ps –a查看当前系统中容器的列表
默认情况下docker ps只能看到正在运行的容器,但是加上-a会列出所有的容器,包括正在运行的和已经停止的。
docker ps –l 会列出最后一次运行的容器,包括正在运行的和已经停止的。
从该命令的输出结果中我们可以看到容器的很多有用信息:ID、用于创建该容器的镜像、容器最后执行的命令、创建时间以及容器的退出状态(上面退出状态为0,因为容器是通过正常的exit命令退出)
4、容器命名
Docker会为我们创建的每一个容器自动生成一个随机的名称。如果想为容器指定一个名称,而不是使用自动生成的名称,则可以用—name标志来实现。
[root@dst6 ~]# docker run --name bigdata_container -i -t centos /bin/bash
[root@503b4ba12b02 /]# exit
容器的名称必须是唯一的。如果我们试图创建两个名称相同的容器,则命令失败。如果要使用的容器名称已经存在,可以先用docker rm命令删除已有的同名容器后,再来创建新的容器。
5、启动停止的容器
可以用容器ID或者容器name来启动容器。
docker start name/ID
6、附着到容器上
通过命令,重新附着到已经运行的容器上。
docker attch name/ID
如果推出shell,则容器也会停止。
7、创建守护式容器
除了创建交互式运行的容器,可以创建长期运行的容器。守护式容器没有交互式会话,非常适合运行应用程序和服务。
docker run --name bigdata_daemon -d centos /bin/sh -c "while true;do echo hello world;sleep 1;done"
如上命令用了-d参数,因此Docker会将容器放到后台运行。
在容器里运行了一个while循环,该循环会一直打印hello world,直到容器或进程停止运行。
通过组合使用参数,可以发现docker run命令并没有像上一个容器一样将主机的控制台附着到新的shell会话上,而是仅仅返回了一个容器ID而已。可以用docker ps查看正在运行的容器,或者docker attch附着到容器上查看。
可以用docker logs来获取容器的日志:
Docker会输出最后几条日志项并返回。也可以用-f参数来监控Docker的日志,与tail –f命令非常类似。
也可以跟踪容易日志的某一个片段,只需要在logs后使用tail命令即可。
docker logs --tail 10 bigdata_daemon获取日志的最后10行内容。
docker logs --tail 0 –f bigdata_daemon来跟踪某个容器的最新日志而不必读取整个日志文件。
为了方便调试,可以使用-t标志来为每条日志减伤时间戳。
8、查看容器内的进程
docker top bigdata_daemon
执行之后,可以看到容器内的所有进程、运行进程的用户及进程ID。
9、容器内部运行进程
如上面的例子,如果我们运行了while循环之后,想打开一个新的shell交互式任务,可以用exec命令。
docker exec -t -i bigdata_daemon /bin/bash
10、停止容器
docker stop name/ID
docker stop bigdata_daemon
11、自动重启容器
如果由于某种错误而导致容器停止运行,还可以通过—restart标志,让Docker自动重新启动该容器。--restart标志会检查容器的退出代码,并据此来决定是否重启容器。默认Docker不会重启容器的。
docker run --restart=always --name bigdata_daemon -d centos /bin/sh -c "while true;do echo hello world;sleep 1;done"
除了always,还可以将标志设为on-failure,这样,只有当容器的退出代码为非0值的时候,才会自动重启。另外,on0failure还接受一个可选的从起次数参数。
--restart=on-failure:5
当容器退出代码为非0时,Docker会自动重启该容器,最多重启5次。
12、深入容器
docker ps可以获取容器的信息。用docker inspect来获取更多的容器信息。
docker inspect bigdata_daemon
docker inspect命令会对容器进行详细的检查,然后返回其配置信息,包括名称、命令、网络配置以及很多有用的数据。
也可以用-f或者--format标志来选定查看结果。
docker inspect --format='{{.State.Running}}' bigdata_daemon
也可以同时制定多个容器,并显示每个容器的输出结果。
13、删除容器
用docker rm命令来删除。
docker rm bigdata_daemon
运行中的容器是无法产出的,必须通过docker stop或者docker kill命令停止容器,才能将其删除。
一次删除所有容器:docker rm ‘docker ps -a -q’
-a标志代表列出所有的容器,-q标志则表示返回容器的ID而不会返回其他信息
03_Docker入门(上)之容器创建、容器使用、容器删除的更多相关文章
- K8S使用入门-创建第一个容器
前面两个教程我们已经使用kubekit将K8S搭建起来了.但是,没有将实际使用中需要在K8S上部署我们的容器创建起来的教程,都是耍流氓.所以,经过几番折腾,我回来给自己洗白了.之前一直卡在创建第一个容 ...
- 怎么处理sqlserver2017部署在winowsDocker上时区无法修改成功的方式,并且可以多创建新的容器调用简单的方式直接使用!
在创建该容器的时候我们执行的语句中添加了一个 从图中所看到的内容,上海时区,按照正常流程一般都是可疑正常执行的,但最后事情并不是我们所想的那么简单. 我们进入对应的容器里面 ,执行语句之后查找对应的文 ...
- 如何在Linux上创建,列出和删除Docker容器
本篇文章介绍的内容是关于在Linux机器上创建,列出和删除docker容器,下面我们来看具体的内容. 1.启动Docker容器 使用下面的命令启动新的Docker容器.这将启动一个新的容器,并为你提供 ...
- docker学习(5) 在mac中创建mysql docker容器
github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql ...
- Docker的容器创建以及基本命令
1. 使用docker run创建docker容器,(docker命令都是以docker开头的)安装完docker后,大多数情况下,本机上面一般没有docker镜像的,执行docker run的时候一 ...
- SpringMVC——DispatcherServlet的IoC容器(Web应用的IoC容器的子容器)创建过程
在上一篇<Spring--Web应用中的IoC容器创建(WebApplicationContext根应用上下文的创建过程)>中说到了Web应用中的IoC容器创建过程.这一篇主要讲Sprin ...
- Spring——Web应用中的IoC容器创建(WebApplicationContext根应用上下文的创建过程)
基于Spring-4.3.7.RELEASE Spring的配置不仅仅局限在XML文件,同样也可以使用Java代码来配置.在这里我使用XML配置文件的方式来粗略地讲讲WebApplicationCon ...
- 云计算之路-阿里云上-容器难容:容器服务故障以及自建 docker swarm 集群故障
3月21日,由于使用阿里云服务器自建 docker swarm 集群的不稳定,我们将自建 docker swarm 集群上的所有应用切换阿里云容器服务 swarm 版(非swarm mode). 3月 ...
- docker-ce-17.09 容器创建,运行,进入,删除,导入/导出
docker容器是镜像运行的一个运行实例,带有额外的可写文件层. 一.创建容器 > docker create -it centos:latest create命令新建的容器处于停止状态,可以使 ...
随机推荐
- 旋转/非旋转treap的简单操作
treap(树堆) 是在二叉搜索树的基础上,通过维护随机附加域,使其满足堆性质,从而使树相对平衡的二叉树: 为什么可以这样呢? 因为在维护堆的时候可以同时保证搜索树的性质: (比如当一棵树的一个域满足 ...
- JavaWeb学习总结(四):Servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- Postman如何调试
在用Postman接口测试过程当中,肯定少不了调试,下面记录一下Postman如何通过控制台输出进行调试: 一.打开控制台(View-Show Postman Console) 二.预置测试数据(测试 ...
- JavaScript的进阶之路(四)理解对象1
对象是JavaScript的基本数据类型.简单的名值对组成了对象,BUT:还可以从一个被称为原型的对象继承属性,对象的方法通常就是继承的属性. 对象最常见的用法有:创建.设置.查找.删除.检测.枚举它 ...
- MongoDB 排序文档
sort() 方法 要在 MongoDB 中的文档进行排序,需要使用sort()方法. sort() 方法接受一个文档,其中包含的字段列表连同他们的排序顺序. 要指定排序顺序1和-1. 1用于升序排列 ...
- Java学习笔记(3)----网络套接字服务器多线程版本
本例给出一个客户端程序和一个服务器程序.客户端向服务器发送数据.服务器接收数据,并用它来生成一个结果,然后将这个结果返回给客户端.客户端在控制台上显示结果.在本例中,客户端发送的数据是圆的半径,服务器 ...
- 基于Vue的WebApp项目开发(四)
实现新闻咨询页面 目录结构 步骤一:创建newslist.vue文件 <template> <div id="tml"> <!--使用mui框架,实现 ...
- Linux 虚拟机配置-network is unreachable
配置虚拟机时,遇到network is unreachable,根据网上找来的方法处理,最终自己试过,成功修改的方法在这里记录一下: 修改虚拟机的网络适配器:桥接,复制物理机网络 vim /etc/s ...
- Windows Socket和Linux Socket编程的区别 ZZ
socket相关程序从Windows移植到Linux下需要注意的: 1)头文件 Windows下winsock.h/winsock2.h Linux下sys/socket.h 错误处理:errno.h ...
- python基础——Linux系统下的文件目录结构
单用户操作系统和多用户操作系统 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源. 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户 ...