docker 有关总结 使用服务器经常用到 docker 部署,在这里简单总结一下我所接触到的 docker, 当然也为了方便自己以后复习什么的 什么是 docker? Docker 是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在 Linux 操作系统上,提供一个额外的软件抽象层,以及 ..

Docker 相关总结

docker 有关总结

使用服务器经常用到 docker 部署,在这里简单总结一下我所接触到的 docker, 当然也为了方便自己以后复习什么的

什么是 docker?

Docker 是一个开放源代码软件项目,让应用程序部署在软件货柜下的工作可以自动化进行,借此在 Linux 操作系统上,提供一个额外的软件抽象层,以及操作系统层虚拟化的自动管理机制。

这是从维基百科中查到的,按我的理解就是在服务器上提供了一个虚拟的空间可以方便软件运行、更新及管理。

PS: 一篇超级棒的说明 docker 和与 docker 相关的概念和技术的文章:可能是把 Docker 的概念讲的最清楚的一篇文章

怎么使用?

一、在云服务器上安装 docker

前提:

服务器系统 : 阿里云 CentOS 7

1. 添加 yum 源

# yum install epel-release –y
# yum clean all
# yum list

2. 安装并运行 Docker

# yum install docker-io –y
# systemctl start docker

3. 检查安装结果

# docker info

二、docker 基本概念

镜像
类似的,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。
容器
镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。
仓库
镜像构建完成后,可以很容易的在当前宿主上运行,但是, 如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。
一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。所以说:镜像仓库是 Docker 用来集中存放镜像文件的地方类似于我们之前常用的代码仓库。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本 。我们可以通过 < 仓库名 >:< 标签 > 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

参考文章:可能是把 Docker 的概念讲的最清楚的一篇文章

三、docker 常用命令

操作容器

列出当前所有正在运行的容器

$docker ps

列出所有的容器

$docker ps -a  

删除单个容器

$docker rm CONTAINER ID

删除所有容器

$docker rm `docker ps -a -q`  

停止、启动、杀死、重启一个容器

$docker stop CONTAINER ID  
$docker start CONTAINER ID  
$docker kill CONTAINER ID  
$docker restart CONTAINER ID

操作镜像

列出镜像

$docker images

下载镜像

$docker pull image_name

删除一个或者多个镜像

$docker rmi image_name 

另外:在删除时应该先停止容器,再删除这个容器或镜像

以上是我个人在接触 docker 中用的最多的几个命令,在此记录一下,方便以后添加和查找

后话

docker 学习成本很低,也很使用,在这里我没有写的是关于 docker 启动镜像、网桥等操作主要是因为在自己接触过程中还接触到了 docker 编排工具,感觉解决容器间通信等问题更方便,之后再开坑记录一下吧。

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销, 可以很容易地在机器和数据中心中运行。最重要的是, 他们不依赖于任何语言、框架或包括系统。

    275 引用 • 663 回帖 • 577 关注
  • 服务器

    服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。

    106 引用 • 508 回帖
回帖
请输入回帖内容...