Docker —— 入门与简介

1.什么是Docker?

  Docker是基于容器的一种开源虚拟平台,容器在英文里叫container,有集装箱的意思,我认为集装箱这一个单词

很好的表达了什么是Docker。我们可以把一些衣服,鞋子,电子商品和水果等东西包装到一个集装箱中,通过一些

运输手段很容易的把这些的商品搬运到其他地方。

   我们在这里说的容器也和集装箱类似,把不同的程序和程序的运行环境使用容器抽象化,提供一个接口,

极大简化了程序的发布与管理。

2.容器(Container)

  Container是指在隔离的空间里运行一个进程的技术,也算是一种虚拟技术。我们在之前一般使用了虚拟OS(VMware和VirtuBox等),

此方法虽然方便简洁,但是由于负载相当大,不是特别好的一种选择。

 

                                         (虚拟机与Docker)

  正如上面所说的,使用虚拟OS存在着性能上的问题,于是为了解决这些问题专家们研发了一种隔离进程的技术。

在 linux系统中把这种技术称为linux container,该技术只是把进程隔离掉,对CPU和内存的损失非常小,工作效率非常大。

   我们在一个服务器中运行多个容器,它们之间互不影响各自独立的运行,犹如使用轻量的虚拟机。我们可以登录运行中的容器,

输入一些命令,使用apt-get来安装一些package。我们也可以限制CPU和内存的使用限度,也可以连接主机指定的端口。

   创建一个新的容器只需要1~2秒,和虚拟机比较其性能是遥遥领先的。

3.镜像(Image)

 

   在Docker中,镜像这个概念和容器一样重要,很多人会把Docker中的容器与镜像搞混,分不清楚他们俩之间的区别。

   镜像包含了运行容器所需要的一些文件与设定值。容器可以说是一个被运行的镜像,一些增加或改变的值会保存到容器当中。

我们可以在同一个进项中创建多个容器,即使容器的状态改变或容器被删除,不会影响到镜像的。

   镜像拥有着为了运行容器的所有信息,不需要再安装一些另外的信息。当有新的服务器出现时,我们只要下载之前创建好的镜像,

生成一些容器就行,一个服务器中可以运行多个容器。

4.安装Docker  (Ubuntu)

5.创建镜像

先在想要装在容器里的程序的文件夹当中生成Dockerfile文件

之后根据自己的需求,在Dockerfile文件中输入一些内容,比如:

  • FROM:选择想要以什么镜像为基础。我们的镜像是以原有镜像的基础上添加一些内容而创建的。
  • RUN: 运行 Shell Script 或者 一些命令
  • COPY:将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中
  • CMD:当容器开始运行的时候想要运行的文件或script
  • WORKDIR:设置在CMD中的操作在哪一个文件夹中运行
  • EXPOSE:设置将和主机连接的端口号

之后在对应文件夹中输入如下命令 "docker build -t image-name ." 即可创建一个镜像。

使用-t来给镜像一个标签,便于识别。

创建之后,可以通过输入docker images 来查看我之前创建好的一些镜像。

 

6.运行镜像

使用-d运行镜像可以让容器在后台运行,也就是说我们就可以运行一个容器,继续做下一件事情。

使用-p可以把我设定的公开端口直接转到容器内的非公开端口。 "docker run -p xxxx:xx -d image-name"

这个例子中,我们可以通过4000端口访问80端口。

我们还可以通过"docker ps"来检查正在运行的容器,使用"docker ps -a"可以检查包括停止的所有容器的信息。

 

如果需要访问容器内部,可以通过exec命令与来实现: "docker exec -it container-id bin/bash"

 

posted @ 2018-12-22 17:18  THUDMTEAM  阅读(229)  评论(0编辑  收藏  举报