1.1 介绍概念
Docker:
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
- Docker通常用于如下场景:
- web应用的自动化打包和发布;
- 自动化测试和持续集成、发布;
- 在服务型环境中部署和调整数据库或其他的后台应用;
- 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
镜像:
Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统就是UnionFS。在Docker镜像的最底层是bootfs。这一层与典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。Docker在bootfs之上的一层是rootfs(根文件系统)。rootfs就是各种不同的操作系统发行版,比如Ubuntu,Centos等等。
容器:
Docker的容器(container)其实就是一个进程的容器,而并不是一个全虚拟化的操作系统,所以他不会有什么init进程。docker将进程、进程所需要的操作系统、运行环境称为容器。所以它比传统的基于hypervisor的虚拟机拥有更高的效率,并使用更低的资源。它实际上是一个内核级别的虚拟化技术,容器还是在使用宿主机的内核。
仓库:
就是一个存储和共享镜像文件的地方。
1.2 不同操作系统上安装
-
mac上
-
centos上
-
windows上
1.3 运行helloword
1.3.1 先搜索一个容器search
$ docker search nginx
搜索一个叫nginx的容器
1.3.2 下载这个容器pull
$ docker pull nginx
下载一个叫nginx的容器到本地。
1.3.3 运行一个容器出来run
a. 一次运行nginx这个容器,并查看nginx的版本号:
$ docker run nginx nginx -v
1.3.3-a.png
b. 后台运行nginx这个容器,并绑定端口号:
$ docker run --name nginx-hello -d -p 88:80 nginx
- 这里我们命名新的服务叫nginx-hello,并且映射到88端口,
- -d 代表后台运行容器,并返回容器ID;
- -p 传入绑定参数
1.3.4 修改运行的容器数据
a.首先查看一下正在运行的容器
$ docker ps
可以看见正在运行的容器列表:
1.3.4-a.pngb.修改正在运行的这个nginx-hello的欢迎页面
首先以交互式终端方式进入nginx-hello, 并执行bash获取一个可操作的shell:
$ docker exec -it nginx-hello bash
$ echo 'hello docker nginx 88' > /usr/share/nginx/html/index.html
- 这里-it这是两个参数,-i表示交互式操作,-t表示终端。
- bash放在镜像名字后面是命令,我们运行一个交互式shell。然后使用echo命令,修改nginx的index.html页面的内容:
1.3.4-c.png
1.3.5 保存这个容器为镜像
我们把nginx的容器修改成了一个版本叫nginx-hello,可以查看他的变动信息:
$ docker diff nginx-hello
1.3.5-a.png
现在把这个修改后进行保存
$ docker commit [这里是id] [这里是保存的名字]
1.3.5-b.png
查看本地的镜像
$ docker images
1.3.5-c.png
网友评论