这周学习了微服务的各种内容,虽然它具有各种优势,但服务拆分给部署带来了很多的麻烦。比如组件依赖比较多,有时会产生一些冲突。每个服务器的配置不同,环境也比较复杂。
Docker就能很好的解决这个问题。它把应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包,并将每个应用放到一个隔离容器去运行,避免互相干扰。
这一点有点类似于虚拟机,但Docker要比虚拟机“轻”很多。它是系统的一个进程,而虚拟机是操作系统当中的一个操作系统。前者的大小一般都是mb级别,而虚拟机的操作通常都是gb级别的。
常用概念
Docker中有几个重要的概念。
首先是镜像(Image),它是一个打包文件,其中有应用所需的依赖,函数库,环境,配置等。
其次是容器(Container),镜像中的应用程序运行后形成的进程,就是相应的容器了。
一个镜像可以生成多个容器,容器之间都是隔离的,对外不可见。这样就保证了开发的敏捷性。
最后是数据卷(Volume),是一个虚拟的目录,它指向宿主机的文件目录,一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。
镜像命令
1.拉取查看镜像
docker pull nginx
通过docker pull 来拉取相应的镜像
docker images
2.保存导入镜像
利用docker xx --help命令查看docker save和docker load的语法
例如,查看save命令用法,可以输入命令:
docker save --help
docker save -o [保存的目标文件名称] [镜像名称]
使用docker save导出镜像到磁盘
docker save -o nginx.tar nginx:latest
使用docker load加载镜像
docker load -i nginx.tar
容器命令
创建并运行nginx容器的命令:
docker run --name containerName -p 80:80 -d nginx
-
docker run :创建并运行一个容器
-
--name : 给容器起一个名字,比如叫做mn
-
-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-
-d:后台运行容器
-
nginx:镜像名称,例如nginx
数据卷命令
创建数据卷
docker volume create html
查看所有数据
docker volume ls
查看数据卷详细信息卷
docker volume inspect html