docker容器

1、什么是docker容器

容器它是一个相对独立的运行环境,和虚拟机差不多但是还是和虚拟机有很大差别,容器的运行应该最小化其对外界的影响,做到合理的控制宿主机的资源。

容器映像是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码,运行时,系统工具,系统库,设置。不管环境如何,集装箱化软件都可以运行相同的Linux和Windows应用程序。容器将软件与其周围环境隔离开来,例如开发环境和登台环境之间的差异,并有助于减少在同一基础架构上运行不同软件的团队之间的冲突。

2、Docker容器的特点

  • 1.轻量级

在一台机器上运行的Docker容器共享该机器的操作系统内核; 他们立即开始并使用更少的计算和内存。图像由文件系统层构建并共享公用文件。这最大限度地减少了磁盘使用量,图像下载速度更快。

  • 2.标准

Docker容器基于开放标准,可在所有主要Linux发行版,Microsoft Windows以及任何基础架构(包括虚拟机,裸机和云中)上运行。

  • 3.安全

Docker容器将应用程序彼此隔离并从底层基础架构中分离出来。Docker提供了最强大的默认隔离功能,可以将应用程序问题限制在一个容器中,而不是整个机器上。

3、容器的使用

  • 镜像的获取

使用使用 docker pull (镜像名)命令来载入镜像

  • 镜像的删除

删除镜像的时候要保证镜像未被使用,如果存在正在运行的docker容器,删除会报错“Error: container_delete: Impossible to remove a running container, please stop it first”

docker images可以列出当前服务器上所有存在的docker镜像

docker rmi 容器id来删除一个镜像,如图所示,因为镜像是采用分层存储,所以删除时,显示很多标签

docker image -q     #列出所有的镜像ID

docker rmi `docker image -q`   #删除所有的镜像

  • 镜像和容器

Docker镜像:docker 的镜像概念类似虚拟机的镜像。是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。(  docker create <image -id > :为指定的镜像添加一个可读写层,构成一个新的容器);docker提供了一个很简单的机制来创建镜像或更新现有的镜像。用户甚至可以从其他人那里下载一个已经做好的镜像直接使用。(镜像是只读的,可以理解为静态文件);docker镜像实际上是由一层一层的系统文件组成,这种层级的文件系统被称为UnionFS( Union file system  统一文件系统),镜像可以基于dockerfile构建,dockerfile是一个描述文件,里面包含了若干条密令,每条命令都会对基础文件系统创建新的层次结构。

Docker容器:容器是由镜像实例化而来,这和我们学习的面向对象的概念十分相似,我们可以把镜像看作类,把容器看作类实例化后的对象。docker容器类似虚拟机,可以执行包含启动,停止,删除等。每个容器间是相互隔离的。容器中会运行特定的运用,包含特定应用的代码及所需的依赖文件。可以把容器看作一个简易版的linux环境(包含root用户权限,进程空间,用户空间和网络空间等)和运行在其中的应用程序。

总结:镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。

  • 使用docker run 镜像名  /bin/bash 启动一个镜像容器

 

参数说明:

-i: 交互式操作。

-t: 终端。

-d:后台启动

centos: centos镜像。

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。

  • 使用exit退出

 

 

  • 查看所有容器 docker ps -a(docker ps 查看启动的容器)

 

 

    •  启动容器 docker start 容器id
    •  停止容器 docker stop 容器id
    •  重启容器 docker restart 容器id

 

  • 进入后台启动的容器(docker attach 容器id

 

  •  容器的导出   docker export 容器id

 

 

 

  • 容器的导入   docker import  文件

cat ./centos7.tar | sudo docker import - cenn:v1

cenn:v1 新镜像名字

使用 sudo docker images 查看导入

 

docker import http://example.com/exampleimage.tgz example/imagerepo  通过连接导入

  •  容器的删docker rm

docker container prune  清除所有处于终止状态的容器

posted @ 2020-11-09 17:11  过氧化氢  阅读(532)  评论(0编辑  收藏  举报