码迷,mamicode.com
首页 > 其他好文 > 详细

docker入门

时间:2018-05-05 14:45:53      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:class   查看   标准化   静态文件   关系   uil   table   进程   最大   

 

Docker入门

            技术分享图片

 

                 

 

什么是docker

Docker是一个装应用的容器 就像杯子可以装水  笔筒装笔 可以吧hello word 把网页以及你可以想到的程序都放进docker

www.docker.com 官网

 技术分享图片

 

docker是世界领先的容器化平台

 技术分享图片

 

Docker思想 看logo可以提现很多

  集装箱 在没有集装箱的时候货物比较混乱又可能有些东西还会掉了,有了集装箱箱子密封的东西不容易丢失保证货完整(把货物想象成你的程序)

标准化 将你需要的东西交付给鲸鱼然后运到超级码头,然后你再本地使用命令到超级码头运过来(可以想成是一个中央库(公有私有都可以)也不用考虑应用装在那些地方你只是需要使用docker命令就ok  Api标准化  如你启动tomcat的时候有使用tomcat.start其它服务器用其它启动命令 docker就标准化了这些 你只需要使用同一个启动命令就可以了

隔离  隔离进程和资源

  

Docker解决了什么问题

 技术分享图片

 

 

这是公司开发和测试经常遇到的问题(开发自己的环境可以起来测试也测试到自己的服务都正常)  两边都感觉不是自己的问题 问题成皮球

 

Docker 可以将程序正常运行的环境装入集装箱 打包给鲸鱼 鲸鱼给服务器 在你的环境怎么运行在服务器还是怎么运行 Docker 解决运行环境不一致的问题

 技术分享图片

 

Docker隔离性 别人的问题不会影响到自己的程序 Docker启动就规定了最大的cpu 超过就gg

 技术分享图片

 

 

当节日来到电商网站需要加多服务器然后进行安装各种环境然后调试非常的麻烦和耗时间Docker可以轻松扩展服务器 1100 1001000  它是已标准的方式把程序和环境运过来然后运行起来每台机器运行两条命令就ok

直接使用

 技术分享图片

 

 

 

 

镜像(集装箱)   仓库(超级码头)   容器(运行程序的地方)

Docker生命周期

Docker 包括三个基本概念:

镜像(Image
容器(Container
仓库(Repository

这三部分组成了Docker的整个生命周期,如下图所示,容器是由镜像实例化而来的,这和我们学习的面向对象的概念十分相似,我们可以把镜像想象成类,容器想象成类经过实例化后的对象,这样就非常好理解镜像和容器的关系了。

 技术分享图片

 

Docker镜像

Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。

例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了Mysql或用户需要的其它应用程序。

Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统被称为UnionFS。镜像可以基于Dockerfile构建,Dockerfile是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。

Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

注:镜像是只读的,可以理解为静态文件。

Docker容器

Docker 利用容器来运行应用。

Docker容器是由Docker镜像创建的运行实例。Docker容器类似虚拟机,可以支持的操作包括启动,停止,删除等。每个容器间是相互隔离的,容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。

可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

注:相对于镜像来说容器是动态的,容器在启动的时候创建一层可写层作为最上层。

Docker仓库

如果你使用过gitgithub就很容易理解Docker的仓库概念。Docker 仓库的概念跟Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。

Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库。

仓库支持的操作类似git,当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。.

·Docker image镜像是只读的,镜像中包含有需要运行的文件。镜像用来创建container,一个镜像可以运行多个container;镜像可以通过Dockerfile创建,也可以从Docker hub/registry上下载。

·Docker container容器是Docker的运行组件,启动一个镜像就是一个容器,容器是一个隔离环境,多个容器之间不会相互影响,保证容器中的程序运行在一个相对安全的环境中。

·Docker hub/registry: 共享和管理Docker镜像,用户可以上传或者下载上面的镜像,官方地址为https://registry.hub.docker.com/,也可以搭建自己私有的Docker registry

 

 

 

去仓库吧镜像 拉到本地 用命令吧镜像在容器中运行起来

Build构建镜像   ship运输镜像(仓库)   Run运行

 

Docker 鲸鱼身上的所有集装箱就是一个docker镜像  镜像就是一系列的文件(保存在本地)

联合文件系统(linux 实现文件的分层

 技术分享图片

技术分享图片

 

 

最下面是系统的引导  第二是linux  第三层如tomcat  jdk  第四就是自己的程序 每层只读

 

容器 就是一个进程或者虚拟机

第五层可读可写 如果下层需要修改文件需要先拷贝到最上层然后修改 应用读的时候先从顶层开始查找 没有就 找下一层  可以保证同一个镜像可以生成多个容器独立运行没有任何干扰

 

仓库

 技术分享图片

 

 

构建镜像完成可以在其它机器运行环境  怎么传送到其它机器呢?

技术分享图片

 

先把镜像传输到仓库目的地到仓库去拉去(有点maven的意思 )

https://c.163yun.com/hub#/m/home/  推荐

 技术分享图片

 

 

 

 

Docker可以自己搭建私有仓库中心

安装 推荐linux系统  ubuntu  dockerubuntu  开发集成最好稳定

 技术分享图片

 

 技术分享图片

 

 

查询系统版本

 

 

apt install docker.io  此命令使用系统自带的版本

 

想要下载最新的使用下面的命令

 技术分享图片

 

或者

Wget -qO- https:get.docker.com/|sh

最好是root权限

 

 

 

Docker  version    命令查看是否安装成功

Service docker start  启动docker服务

 技术分享图片

 

 

 

实践镜像操作 hello-word

 技术分享图片

 

拉取镜像 黑色必须  红色可选

技术分享图片

 

 

查看本机镜像

 技术分享图片

技术分享图片

 

 

 

默认去docker仓库下载

 

 

容器运行

 技术分享图片

 技术分享图片

技术分享图片

技术分享图片

 

 

 

 

 

 

 

 

持久化容器  web服务器  需要后台挂起

 

首先去https://c.163yun.com/hub#/m/home/ 查找自己需要的镜像

 技术分享图片

 

进入复制命令

 技术分享图片

 

然后下载镜像  拉去到本地

 技术分享图片

 

 

查看镜像完成

 技术分享图片

 

 

运行docker run 名称|| image  id都可以

 技术分享图片

 

新开一个窗口 记住登录root权限

 技术分享图片

 

镜像已经正常的运行了

Docker ps 差看本机运行的容器

这是前台运行看不到任何反应  ctrl+c结束  要后台运行需要 docker run  -d  名称跟id都行

 

 

Docker stop 关闭容器

 技术分享图片

技术分享图片

 

 

Docker stop b11 也可以关闭容器

 

 

想要进入容器内部使用一下命令

 技术分享图片

 

Which nginx查看安装地址

Ps  -ef 查看经常

 技术分享图片

 

Exit 退出容器

 

Docker网络 访问容器中的nginx

 技术分享图片

 

 技术分享图片

 

 

 

 

-p开放容器的端口到主机上 默认空   -P(大写)开放所有的端口到随机的端口

8080主机端口 80是容器开放的的端口

Netstat  -na|grep  8080

 技术分享图片

 

查看开放的端口

Ip为服务器ip

 技术分享图片

 

-P

8080访问实现  变成32769的随机端口

 

 

 

 

 

 

docker入门

标签:class   查看   标准化   静态文件   关系   uil   table   进程   最大   

原文地址:https://www.cnblogs.com/jiahaoJAVA/p/8994631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!