docker 五 简单使用容器

简单地说,容器是镜像的一个运行实例,所不同的是,它有额外的可写文件层。

如果认为虚拟机是模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。那么docker 容器就是地理运行的一个或一组应用,以及它们的必需运行环境。

1.1 创建docker 容器

新建容器 可以使用 docker create 命令新建一个容器,例如:

[[email protected] ~]# docker create -it centos:centos6 /bin/bash

*其中 -t 表示 进入终端 -i 表示容器的标准输入保持打开。

使用 docker create 命令新建的容器处于停止的状态,可以使用docker start 命令来启动它

Docker start (ID)

新建并启动容器

启动容器有二种方式,一种基于镜像新建一个容器并启动,另外一个是将在终止的状态的容器重新启动。所需要的命令主要为 docker run,等价于先执行 docker create命令 在执行 docker restart 命令

docker run -t -i centos:centos6 /bin/bash

当利用docker run 来创建并启动容器时,docker 在后台运行的标准操作包括:

1.检查本地是否存在指定的镜像,不存在就从公有仓库下载。

2.利用镜像创建并启动一个容器。

3.分配一个文件系统,并在只读的镜像层外面挂载一层可读写层

4.从宿主机配置的网桥中接口中桥接一个虚拟接口到容器中去。

5.从地址池配置一个ip地址给容器。

6.执行用户知道的应用程序。

7.执行完毕后容器被终止。

用 exit 或者ctrl+d 则退出容器 如果容器退出 则关闭容器,可以使用 docker start 重启里面的服务 不会开启。

守护状态运行

更多的时候,需要让docker容器在后台以守护态形式运行。用户可以通过添加-d参数来添加

[[email protected] ~]# docker run -d centos:centos6 /bin/bash  -c "while true;do echo hello world;sleep 1; done"

要获取容器的输出信息,可以通过docker logs 命令

docker logs  容器id

终止容器

可以使用 docker stop 来终止一个运行中的容器,

[[email protected] ~]# docker stop d130a7e46842

处于终止状态的容器,可以通过docker start 命令来重新启动;

[[email protected] ~]# docker start d130a7e46842

还可以使用 docker restart 命令将一个运行态的容器终止,然后在重新启动它

[[email protected] ~]# docker restart d130a7e46842

进入容器

Docker 1.3版本起,提供了一个更加方便的工具exec,可以直接在容器内运行命令。

docker exec -ti d130a7e46842 /bin/bash

用exit 后 不关闭容器 而是在后台继续运行

删除容器

可以使用docker rm命令删除处于终止状态的容器,命令格式为 docker rm ,支持的选项包括

-f 强行终止并删除一个运行中的容器。

-l了删除容器的连接,但保留容器。

-v 删除容器挂载的数据卷、

[[email protected] ~]# docker rm d130a7e46842

如果要删除一个运行中的容器,可以添加-f参数

[[email protected] ~]# docker rm -f e41acf350912

导入和导出容器 (重点)

导出容器是指导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态,可以使用docker export命令

[[email protected] docker]# docker export cec2eea2f8b6 > test1.tar

docker export (容器的id) > 文件.tar

可以讲这些文件传输到其他机器上,在其他机器上通过导入命令实现容器的迁移。

导入容器

导出的文件可以使用 docker import 命令导入,成为镜像

[[email protected] docker]# cat test1.tar | docker import - test/centos:v1

Docker import -(空格) 名字

[[email protected] docker]# docker images

时间: 2024-10-25 02:51:33

docker 五 简单使用容器的相关文章

docker入门之简单的容器使用

docker入门之简单的容器使用 首发:arppinging 一.运行容器 1)搜索和下载镜像 在之前我们打过一个比分,容器就像vmware workstation一样,而镜像类似于一个OVA文件,如果我们想让容器变得有意义,那镜像是我们必不可少的一个"货物". 跟OVA文件类似,如果我们基于某一个镜像创建容器,那么在容器里面的任何操作不会被写入原本的镜像,除非对所有的操作进行一次镜像重构,把所有操作的结果导出形成一个新的镜像. 1.1 搜索需要的镜像 格式:docker search

Docker五种存储驱动原理及应用场景和性能测试对比

Docker最开始采用AUFS作为文件系统,也得益于AUFS分层的概念,实现了多个Container可以共享同一个image.但由于AUFS未并入Linux内核,且只支持Ubuntu,考虑到兼容性问题,在Docker 0.7版本中引入了存储驱动, 目前,Docker支持AUFS.Btrfs.Device mapper.OverlayFS.ZFS五种存储驱动.就如Docker官网上说的,没有单一的驱动适合所有的应用场景,要根据不同的场景选择合适的存储驱动,才能有效的提高Docker的性能.如何选择

Docker的镜像和容器

Docker image详细介绍 在之前的介绍中,我们知道docker images 是docker的三大组件之一. docker把下载的 images 存储到docker主机上,如果一个 image 不在主机上,docker会从一个镜像仓库下载,默认的仓库是  DOCKER HUB  公共仓库. 接下来将介绍更多关于docker images 的内容,包括: 使用和管理本地主机上的 images 创建一个基础的 images 上传 images 到docker hub (公共 images 仓

Docker数据持久化与容器迁移

上节讲到当容器运行期间产生的数据是不会在写镜像里面的,重新用此镜像启动新的容器就会初始化镜像,会加一个全新的读写入层来保存数据.如果想做到数据持久化,Docker提供数据卷(Data volume)或者数据容器卷来解决问题,另外还可以通过commit提交一个新的镜像来保存产生的数据.那么,来一一看下各自的使用方法. 一.数据卷 数据卷特性: 可以绕过UFS文件系统,为一个或多个容器提供访问. 完全独立于容器的生存周期,因此不会在删除容器时删除其挂在的数据卷. 数据卷特点: 数据卷在容器启动初始化

企业级应用框架(五)IOC容器在框架中的应用

前言 在上一篇我大致的介绍了这个系列所涉及到的知识点,在本篇我打算把IOC这一块单独提取出来讲,因为IOC容器在解除框架层与层之间的耦合有着不可磨灭的作用.当然在本系列前面的三篇中我也提供了一种基于反射的解耦方式,但是始终不是很优雅,运用到项目中显得别扭.目前,我所掌握的IOC容器主要有两个:一个是 unity,另一个则是spring.net,经过慎重的思考我还是决定选择unity 2.0做为本系列的IOC容器,原因主要有两个:第一,他是一个轻量级的容器且师出名门(微软),第二,它提供了简单的拦

docker技术剖析--docker网络(二)docker宿主机之间容器互通

http://hongge.blog.51cto.com/ 多台物理主机之间的容器互联(暴露容器到真实网络中) docker 默认的桥接网卡是 docker0 .它只会在本机桥接所有的容器网卡,举例来说容器的虚拟网卡在主机上看一般叫做 vethxxx,而 docker 只是把所有这些网卡桥接在一起,如下: 这样就可以把这个网络看成是一个私有的网络,通过 nat 连接外网,如果要让外网连接到容器中,就需要做端口映射,即 -p 参数. 如果在企业内部应用,或则做多个物理主机的集群,可能需要将多个物理

【Java心得总结五】Java容器上——容器初探

在数学中我们有集合的概念,所谓的一个集合,就是将数个对象归类而分成为一个或数个形态各异的大小整体. 一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集.构成集合的事物或对象称作元素或是成员.集合具有:无序性.互异性.确定性. 而在我们计算机科学种集合的定义是:集合是一组可变数量的数据项(也可能是0个)的组合,这些数据项可能共享某些特征,需要以某种操作方式一起进行操作.一般来讲,这些数据项的类型是相同的,或基类相同(若使用的语言支持继承).列表(或数组)通常不被认为是集合,因为其大小

docker的简单搭建(java/tomcat 环境)

1.一副图简单了解下docker的布局,它是虚拟的,docker分为私服.镜像.容器三个模块 一般从私服pull镜像,镜像run一个容器,我们把容器作为一个虚拟服务,里面可以独立运行进程有独立的内网Ip, 通常把tomcat.工程挂到容器中运行 2.快速安装Docker(在centos.ubuntu上的差异不大) sudo apt-get update sudo apt-get install docker.io #启动服务和守护进程 service docker.io status servi

RHEL7.3系统上安装docker环境及docker的简单使用

为RHEL7和Centos7上安装epel源和docker源以及安装和检查 命令安装 yum -y install epel-release 手动安装 wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm rpm -vih epel-release-7-2.noarch.rpm 或者 rpm -vih http://dl.fedoraproject.org/pub/epel/7/x86_6