docker入门笔记

1,什么是docker

	Docker是基于Go语言实现的开源容器项目,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,
	并发布和应用到任意平台中。直接基于Linux内核,支持各种语言,它比VM虚拟机更加轻量。
Docker用途 和tomcat的区别:

两者不是同一种类型。
1、docker 是容器,tomcat是jsp应用服务器( Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的)
2、tomcat可以安装在物理机上,虚拟机上,也可以安装在Docker上。所以从这个角度讲,Docker也可以看做是一种超轻量化的虚拟机。
3、Docker可以安装在物理机,虚拟机上,但不知道Docker上面是否可以再安装Docker,我觉得理论上应该可以。
4、Docker作为超轻量级的平台,可以整体移植,这也是它流行的其中一个原因。

Docker 提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个Docker,而MySQL运行在另外一个Docker,两者可以运行在同一个服务器,或多个服务器上。未来可能每个应用都要Docker化。
见:https://www.cnblogs.com/panchanggui/p/10691308.html

2, Docker容器特点

  • 启动速度
    启动虚拟机需要先启动虚拟机的操作系统,再启动应用,这个过程非常慢;而启动 Docker 相当于启动宿主操作系统上的一个进程。

  • 占用资源
    虚拟机是一个完整的操作系统,需要占用大量的磁盘、内存和 CPU 资源,一台机器只能开启几十个的虚拟机;而 Docker 只是一个进程,只需要将应用以及相关的组件打包,在运行时占用很少的资源,一台机器可以开启成千上万个 Docker。

  • 部署快
    生产或者开发环境共用一套或者几套docker环境地址,可通过控制部署流程的执行脚本部署代码。
    例如:
    git clone https://github.com/my-project
    sh ./my-build-boot.sh (执行启动程序shell)

  • 隔离性好
    往往我们一台机器上可能需要跑多个服务, 而多个服务运行环境各不相同,甚至两个或者多个应用有依赖冲突,docker可以将它们很好的分离。

  • 安全性:
    同一台机器的多个服务中,其中一个报警,不影响其它docker中任务的正常运行。

镜像与容器
镜像是一种静态的结构,可以看成面向对象里面的类,而容器是镜像的一个实例。
镜像包含着容器运行时所需要的代码以及其它组件,它是一种分层结构,每一层都是只读的(read-only layers)。构建镜像时,会一层一层构建,前一层是后一层的基础。镜像的这种分层存储结构很适合镜像的复用以及定制。
构建容器时,通过在镜像的基础上添加一个可写层(writable layer),用来保存着容器运行过程中的修改。

3, Docker的三个概念

  • 镜像(Image)
    类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。
  • 容器(Container)
    类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。
  • 仓库(Repository)
    类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别: 注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。

参考:http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

image和容器 区分
1,image 文件生成的容器实例,本身也是一个文件,称为容器文件。
2,也就是说,一旦容器生成,就会同时存在两个文件: image文件和容器文件。
3,而且关闭容器并不会删除容器文件,只是容器停止运行而已

此处摘用菜鸟教程一句话:镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等

4, Docker的仓库

Docker Hub 有两种仓库:
一种是用户仓库,一种是顶层仓库
用户仓库是由开发人员自己创建的,顶层仓库是由Docker Hub 内部人员管理。
用户仓库的命名由两部分构成,如 cxuan/ubuntu
用户名 例如 : cxuan; 仓库名 例如 : ubuntu

  • 顶层仓库的命名就比较严谨,如 ubuntu 仓库。顶层仓库由 Docker 公司和选定的优质基础镜像厂商来管理,用户可以基于这些镜像构建自己的镜像。

5.拉取镜像

  • https://hub.docker.com/ 注册
  • Docker login
  • docker images
    把本地镜像打标签,dockerzqh 为你注册的用户名,dockerzqh/hellos为仓库名,v6为标签名
  • docker tag hello-world dockerzqh/hellos:v6
  • docker pull dockerzqh/hellos:v6 上传镜像(为开源的 私有的要钱)
  • docker tag hello-world dockerzqh/hellos:v6

参考 https://blog.csdn.net/a350301941/article/details/96329331

6. 实操:搭建docker (以centOS为例)

(一步步搭建简单docker 包括上传镜像拉去镜像)

安装:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动:service docker start  (检测是否启动:ps -ef|grep docker)
搜索镜像:docker search [option] keyword
	比如:docker search mysql   docker search java  	 docker search python
下拉镜像:docker pull centos  
初始化镜像并进入docker容器: docker run -it ubuntu:latest(REPOSITORY: TAG) /bin/bash
查看已经创建的容器:docker container ls --all
查看启动的容器:docker container ls
停止的容器进行启动:docker start 55ca9501f265
进入已启动的docker容器: docker attach eef0b9b9fdca [conatinerId]
退出容器:exit 
退出容器但又不想让容器停止:Ctrl+P+Q 
终止容器运行: docker container kill [containerID]
删除 image 文件: docker image rm [imageName] 

实操截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

希望大家有所收获,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一个开源的容器化平台,它可以让开发者打包他们的应用程序和所有依赖项到一个轻量级的、可移植的容器中。Docker容器可以在任何环境中运行,从开发人员的笔记本上到生产环境中的物理机器和虚拟机中。 学习Docker有很多好处,首先,它可以帮助开发人员更快地构建、测试和部署应用程序。通过将应用和依赖项打包到一个容器中,开发人员可以确保在不同的环境中应用能够一致地运行。另外,Docker还可以提高系统的可移植性和可伸缩性,从而减少了在不同环境中部署和管理应用程序的成本和复杂性。 在了解Docker的基本概念之后,可以开始学习如何构建和管理Docker容器。这包括学习Docker镜像、容器Dockerfile等概念,以及如何使用Docker命令行工具来管理容器和镜像。另外,还需要了解Docker Compose和Docker Swarm等工具,它们可以帮助开发人员更方便地管理多个容器和构建Docker集群。 最后,学习Docker也需要了解如何将Docker与持续集成/持续部署(CI/CD)工具和云平台集成,从而构建一个完整的DevOps工作流程。这样可以让开发团队更快速地交付高质量的应用,并及时地对应用进行更新和维护。 总之,Docker入门白皮书可以帮助开发人员了解容器化技术的基本概念和原理,以及如何在实际工作中应用Docker来提高开发效率和应用可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值