前言:
以下是Docker的官方介绍:
Docker 是一种最流行的容器化实现方案,和虚拟化技术类似,它极大地方便了应用服务的部署;又与虚拟化技术不同,它以一种更轻量的方式实现了应用服务的打包。使用 Docker,可以让每个应用彼此相互隔离,在同一台机器上同时运行多个应用,不过它们彼此之间共享同一个操作系统。Docker 的优势在于,它可以在更细的粒度上进行资源管理,也比虚拟化技术更加节约资源。
从上面的话中,我们可以提取出简要信息出来:方便应用服务部署,可以实现应用服务打包,多应用隔离….等等
其实我使用docker的初衷是由于之前学习的爬虫,后面接触到框架内容时,就有各种各样的环境部署问题,还记得那时候,一下子就花了大半天时间,去部署相关环境,弄得我后面抓狂了哈哈哈。
后来就听说有这么个虚拟化容器技术,然后我就上手使用了,后来…嗯,真香!
Docker总览

- 容器:Docker可以同时运用多个服务(存储在容器中),容器是Docker最重要的概念,容器承载着镜像,而镜像可以理解为跟虚拟机里面的镜像文件类似的东西
- 可以将应用服务打包成tar文件(就像把当前镜像写成一个文件,也可以由文件还原成镜像)
- 仓库存储着很多镜像文件、可以下载的软件等等,从仓库下载速度很快
- Dockerfile是配置文件,可以构建镜像
我们今天这篇Docker入门介绍主要就是围绕这个图进行展开的。
现在我们动手实战吧:https://labs.play-with-docker.com/
这个网站提供了Docker网页版,我们可以不用下载Docker,就可以在上面试试手。
Docker实战
下载与运行:
- pull命令可以从仓库获取我们需要的镜像,这里使用nginx示例
- 可以看到,上面有个80的字样,我们就配置好了nginx服务(是不是超级简单!!)
网页效果:
查看当前运行服务
可以发现一些命令和Linux是有共同之处的
服务由几部分组成:
①container ID:服务运行的ID号
② Name :名称,可以使用–name 进行指定
③ image:镜像文件
④ 后面还有一些该服务的相关信息,比如创建使用的命令、运行的服务时长、什么时候创建的等等
关闭进程
- 首先,使用docker container ls 或者 docker ps 查找到进程的ID号
- 然后使用 rm -f id号 进行删除
commit镜像
- 我们可以将当前运行的服务,生成为镜像文件
- 命令为:docker commit 进程id 将要生成的镜像名
运行commit的镜像文件
- 我们利用镜像文件生成了另一个nginx服务,映射成81的外部端口
镜像与 tar文件的交互
第一步,写入到tar文件:
docker save 镜像名 > 文件名.tar (>的意思是,使用覆盖的方式)
第二步,需要先删除镜像文件run的服务,不然无法删除该镜像文件(会提示正使用中)
- docker images查看当前的镜像文件。
第三步,使用load命令加入镜像文件
Docker 内部IP示意图

- 宿主机在这里我们举例为eth0口(容器与宿主机交互通过docker网卡转发路由)
- Docker安装后会生成一个docker0网卡(IP通常是127.27.0.1),而容器的IP会等于 Docker网卡IP +1+1…
- 主要实现:如果想要访问容器1的Mysql服务,我们需要在宿主机输入:127.27.0.2:3306
写在最后
Docker的介绍就到这里啦~我觉得掌握了这个,就免去了很多环境部署的烦恼…
而且建议大家都在Linux系统下面部署开发环境。对!(一把辛酸泪)