最近在研习Java Guide,看到了docker,正好学习一波:
JavaGuide地址:https://github.com/Snailclimb/JavaGuide#Docker
什么是Docker
- Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 “这段代码在我机器上没问题啊” 这类问题;——一致的运行环境
- 可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。——更快速的启动时间
- 避免公用的服务器,资源会容易受到其他用户的影响。——隔离性
- 善于处理集中爆发的服务器使用压力;——弹性伸缩,快速扩展
- 可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。——迁移方便
- 使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。——持续交付和部署
在我看来,Docker可以按照git去理解,在使用git之前,我们通常需要通过引入项目的方式,来进行协同开发,但是每台电脑的运行环境可能不一样,在你这运行的好好的,到了他那就崩了.然后就要疯狂调试,看看到底是你的毛病还是我的毛病.但是有git的话我们直接pull一下就行了,这样打包什么的就都不需要了,大大的节省了开发时间.
而docker呢,就是为了部署的更快速,运行环境可以直接pull一下就搞定,不需要再去一个服务器一个服务器的安装,哪些东西安了哪些没装都不知道.
Docker安装和使用
就像GitHub一样,Docker也有dockerhub,dockerhub能够和各个服务器上的docker相连接,只要你在服务器上登录了dockerhub(通过docker login命令),就可以进行拉镜像和推镜像的操作了.
我是按照JavaGuide上的教程一步步做的,本人用的是阿里云的ECS,没有任何毛病,照着敲就行.在这记录一下各个命令:
docker pull 拉取镜像
docker push 推送镜像
docker images 查看当前服务器上的镜像
docker inspect 查看镜像详细信息
docker inspect -f {{“.Size”}} XXXX 查询文件尺寸
docker history xxx --no-trunc xxxx 看具体信息
docker search [option] keyword 搜索镜像
docker tag:为镜像添加快捷方式.
docker rmi:删除镜像
docker image prune 清理镜像
docker container commit 基于已有的镜像创建
docker file 通过 Dockerfile 的方式来创建镜像
docker save 导出镜像
docker load 导入镜像
docker login登录
具体安装和使用请戳这里->Docker镜像的常用操作