首页 > 技术文章 > [java] Docker

cxc1357 2021-07-29 15:27 原文

概述

  • 借鉴集装箱运输的思路
  • 解决了同样代码,运行环境变化后无法运行的问题
  • 一个容器包含了完整的运行时环境,除了应用程序本身之外,这个应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入了一个称为容器镜像的包中

介绍

  • 镜像:镜像是文件,是只读的,提供了运行程序完整的软硬件资源,是应用程序的"集装箱"
  • 容器:是镜像的实例,由Docker负责创建,容器之间彼此隔离。彼此拥有自己的文件系统,容器的底层镜像都是一个linux系统
  • 关系:用docker安装应用,就是在网上拉取一个已有镜像资源,然后自己的电脑上就有了这个镜像的容器

作用

  • 简化配置:Docker的初始目的,虚拟机VM最大的好处是基于你的应用配置能够无缝运行在任何平台上。Docker提供同样类似VM的能力,但是没有任何副作用,它能让你将环境和配置放入代码然后部署,同样的Docker配置能够在各种环境中使用,这实际是将应用环境和底层环境实现了解耦
  • 代码管道化管理:能够对代码以流式pipeline管道化进行管理,从开发者的机器到生产环境机器这个流程中都能有效管理。因为在这个流程中会有各种不同的环境,每个都可能有微小的区别,Docker提供了跨越这些异构环境以一致性的微环境,从开发到部署实现流畅发布
  • 开发人员的生产化:在一个开发环境,我们希望我们的开发环境能更加接近于生产环境,我们会让每个服务运行在自己的VM中,这样能模拟生产环境,比如有时我们并不总是需要跨越网络连接,这样我们可以将多个Docker装载一系列服务运行在单机上最大程度模拟生产分布式部署的环境
  • 应用隔离:有很多理由你需要在一台机器上运行多个应用,这就需要将原来铁板一块monolithic的应用切分为很多微服务。实现应用之间的解耦,将多个应用服务部署在多个Docker中能轻松达到这个目的
  • 服务合并:使用Docker也能合并多个服务以降低费用,不多的操作系统内存占用,跨实例共享多个空闲的内存,这些技术Docker能以更加紧密资源提供更有效的服务合并
  • 多租户:Docker能够作为云计算的多租户容器,使用Docker能容易为每个租户创建运行应该多个实例,这得益其灵活的快速环境以及有效diff命令
  • 快速部署:Docker通过创建流程的容器,不必重新启动操作系统,几秒内能关闭,你可以在数据中心创建或销毁资源,不用担心额外消耗。典型的数据中心利用率是30%,通过更积极的资源分配,以低成本方式对一个新的实例实现一个更聚合的资源分配,我们很容易超过这个利用率,大大提高数据中心的利用效率

命令

  • 启动:systemctl start docker
  • 查询当前容器:docker container ls -all
  • 删除当前容器:docker container rm mycentos
  • 查询所有运行的容器:docker ps
  • 删除特定容器:docker rm [container ID]
  • 停止运行容器:docker stop [name]
  • 重启容器:docker restart [container ID]

 

参考

docker安装

https://www.cnblogs.com/myzony/p/9071210.html

win7安装,设置国内镜像

https://blog.csdn.net/galen2016/article/details/89219199

https://blog.csdn.net/zjy660358/article/details/110260883

win10安装,设置国内镜像

https://www.runoob.com/docker/windows-docker-install.html

https://blog.csdn.net/qq_35976271/article/details/91362620

注册docker hub

https://blog.csdn.net/qq_19348391/article/details/82292253

阿里云加速镜像

https://cr.console.aliyun.com/cn-beijing/instances/mirrors

mysql

https://www.runoob.com/docker/docker-install-mysql.html

https://www.cnblogs.com/sablier/p/11605606.html

https://blog.csdn.net/weixin_40461281/article/details/92610876

https://segmentfault.com/a/1190000037512741

要不要把mysql部署到docker

https://blog.csdn.net/u012562943/article/details/78983020

https://blog.csdn.net/mingongge/article/details/107872989

CentOS 8 错误

https://blog.csdn.net/qq_36643282/article/details/105190759

dolphinscheduler

https://hub.docker.com/r/minimy/dolphinscheduler

docker 打包 springboot

https://baijiahao.baidu.com/s?id=1650078290701592331&wfr=spider&for=pc

https://www.cnblogs.com/yumiaoxia/p/10076214.html

https://blog.csdn.net/weixin_42338555/article/details/83113387

https://www.pianshen.com/article/6082306597/

https://blog.csdn.net/junmoxi/article/details/80861199

idea docker 插件

https://blog.csdn.net/qq_35885175/article/details/115484559

docker maven jib

https://blog.csdn.net/mo_xingwang/article/details/81096188

https://blog.csdn.net/boling_cavalry/article/details/94355659

https://www.jb51.net/article/196833.htm

jib 阿里云镜像

https://blog.csdn.net/zhangjingao/article/details/83542452

https://blog.csdn.net/weixin_39899244/article/details/110635119

推荐阅读