Docker03 Docker基础知识、Docker实战
1 Docker基础知识
1.1 什么是Docker
Docker是一个可以装应用的容器,就像杯子可以装水、书包可以装书一样;docker官网
Docker是Docker公司开发的,并开源到GitHub上;
Docker是跨平台的,支持windows、linux、Macos
1.2 Docker思想
1.2.1 集装箱
需要运行的程序放到一个集装箱中
1.2.2 标准化
运输方式
存储方式
API接口
1.2.3 隔离
1.3 Docker解决了什么问题
1.3.1 解决运行环境不一致问题
解决了本地可以运行但是上线就出现问题
1.3.2 应用之间的隔离
当一台服务器同时运行多个应用时,有可能会因为一个应用出现问题而牵扯到其他应用的运行;docker化的应用会给每个应用进行隔离,某个应用出现问题后不会影响其他的应用
1.3.3 简化应用的扩展
当需要大量扩展应用程序的部署时,利用docker可以轻松实现;例如:双十一应用的扩展
1.4 Docker核心技术
Docker运行程序的过程:利用命令从仓库拉取一个镜像到本地 -> 利用命令将镜像变成容器 -> 利用命令运行容器
build : 构建镜像
ship : 运输镜像,从仓库把需要的镜像运输到某台服务器(即:从仓库中获取镜像)
run : 运行的进行(就是一个正在运行的容器)

1.4.1 镜像(集装箱)
就行就是一系列的文件,可以是应用文件,也可以是运行应用需要的环境文件;Docker会把这些文件保存到本地,存储方式采用Linux中的联合文件系统的分层概念方式(即:将不同目录下的文件挂载到同一个目录下)。
镜像可以用来创建Docker容器的。一个镜像可以包含一个完整的操作系统环境和用户需要的其它应用程序。在docker hub 里面有大量现成的镜像提供下载。docker的镜像是只可读的,一个镜像可以创建多个容器,每个容器之间相互不干扰。

镜像由下到上每层的具体说明为:
操作系统的引导
具体的Linux操作系统
相关软件:tomcat、jdk等
应用代码
顶层为可写层(属于容器)
说明:docker加载完每层后,所有文件都会被视为放在同一个目录【相当于所有文件都放在一个文件系统中,docker的这个文件系统就叫作容器】
1.4.2 仓库(超级码头)
就是存放镜像的远程仓库


1.4.3 容器(运行程序的地方)
Docker利用容器来开发、运行应用容器是镜像创建的实例。它可以被启动、开始、停止、删除。每个容器都是 相互隔离的、保证安全的平台。
电风扇
2 安装
2.1 windows安装
2.1.1 下载Docker for Developers


2.1.2 启动Docker Quickstart Termina时遇到的坑
说明01:非windows10用户需要下载docker toolbox 来安装docker
说明02:安装完 docker toolbox 后会在桌面出现三个图标

坑01:启动Docker Quickstart Terminal时会提示找不到git执行路径
解坑02:右键Docker Quickstart Terminal -> 属性 -> 快捷方式 -> 目标 -> D:\PTool\Git\bin\bash.exe --login -i "H:\docker\Docker Toolbox\start.sh"
坑02:第一启动Docker Quickstart Terminal时需要下载一个boot2docker文件,非常慢
解坑02:利用迅雷下载(从第一次启动Docker Quickstart Terminal时可以获取到boot2docker文件的下载url),并将下载好的文件放到 C:\Users\a\.docker\machine\cache 下即可;然后再次启动
说明03:启动 Docker Quickstart Terminal 成功后,可以利用Docker Version来查看docker的客户端和服务端信息

3 Docker实战
3.1 Docker的Hello World
docker pull -> 拉取镜像
docker images -> 查看镜像列表信息
docker ps -> 查看正在运行的容器信息
docker run -> 运行镜像

3.2 Nginx
3.2.1 nginx容器的特点
是一个持久运行的容器
最好选择后台运行
进入容器内部
3.2.2 具体步骤
》到镜像中心去查看nginx

》拉取nginx镜像
docker pull hub.c..com/library/nginx:latest
》前台运行nginx容器(前台启动直接利用ctrl + c就可以停掉)
docker run hub.c..com/library/nginx
》后台运行nginx容器
docker run -d hub.c..com/library/nginx

》关闭nginx容器
docker stop 244c59f1c7f7

》进入nginx容器内部
使用命令 dokcer exec
可以通过 docker exec --help 查看该命令的一些信息
docker exec -i -t b42516a87c12 bash

说明:进入容器后就相当于进入了一个linux系统,可以通过exit命令退出
》访问容器中的nginx
网络类型:Bridge(docker的默认模式)、Host、None
端口映射

$ docker run -d -p : hub.c..com/library/nginx

坑01:IP问题
未完待续...2018年11月11日16:59:14
Docker03 Docker基础知识、Docker实战的更多相关文章
- Docker 基础知识 - Docker 概述
Docker 是一个开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与基础架构分离,以便快速交付软件.有了 Docker,你可以像管理应用程序一样管理你的基础设施.通过利用 Dock ...
- PJzhang:docker基础知识的2个疗程-one
猫宁!!! 参考:http://virtual.51cto.com/art/201805/572135.htm https://www.cnblogs.com/rkit/p/9237696.html ...
- docker 基础知识分享ppt
给团队做的docker基础分享ppt, 见下面的附件. https://files.cnblogs.com/files/harrychinese/docker_intro.pptx
- 史上最全docker基础知识汇总
正文 Docker常用命令 run docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -e设置环境变量:-e username=zhj --name为容器指定 ...
- docker学习---docker基础知识
目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Re ...
- docker基础知识普及(一)
背景 这篇内容是之前给部门同事培训时写的文档,旨在传达一些docker相关概念,有个基本印象,当然,以下内容都来自网络,我只是个搬运工.具体操作在下篇文章中 一.什么是docker? 1. Docke ...
- Docker基础知识及入门
什么是Docker? Docker是由dotcloud公司使用golang语言进行开发的,基于Linux内核的 cgroup,namespace,以及OverlayFS类的Union FS等技术,对进 ...
- 容器技术学习系列(一)-Docker基础知识学习
一.概述 1.Docker是什么? 1)Docker是世界领先的软件容器化平台 2)Docker公司开发,开源,托管在github 3)跨平台,支持Windows.MacOS.Linux 2.Dock ...
- 『现学现忘』Docker基础 — 35、实战:自定义CentOS镜像
目录 1.前提说明 2.编写Dockerfile文件 3.构建镜像 4.运行镜像 5.列出镜像的变更历史 1)目标:自定义镜像wokong_centos. 2)所用到的保留字指令: FROM:基础镜像 ...
随机推荐
- c# Dictionary字典类如何使用
Dictionary<string, string> openWith = new Dictionary<string, string>(); //添加元素 openWith. ...
- Java变量类型之间的转换
int i; String s="134"; 1)String转换成int i=Integer.parseInt(s); 2)int转换成String(其他类型转String,都可 ...
- 连电子硬件行业都在开始使用 Git 了你还在等什么?
连电子硬件行业都在开始使用 Git 了你还在等什么? 无论二进制还是文本 Git 都可以管理. 相对于电子行业传统的复制粘贴式的版本管理, git 的版本管理先进太多太多了,没有理由不用. 虽然做不到 ...
- Spark的CombineByKey
combineBykey关键是要明白里面的三个函数: 1. 当某个key第一次出现的时候,走的是第一个函数(createCombin):A function that creates a combin ...
- 解决div嵌套时IE8和FF无法自适应高度
解决div嵌套时IE8和FF无法自适应高度 还是做类似新浪评论回复的时候,将回复的DIV嵌套在一个DIV中,然后点击回复的时候显示子DIV,这是父DIV的高度是会变化的,于是我将父DIV的高度设置为h ...
- 小小的学习FPGA建议
学习FPGA,一点小小的 建议或者总结分享. 语法层面搞懂阻塞和非阻塞语句,以及Verilog语言的时序描述方法,把自己想象成编译器,尝试去编译自己写的Module,不断总结自己设计的逻辑会综合出怎么 ...
- (转)Inno Setup入门(十六)——Inno Setup类参考(2)
本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250967 这里将接着在前面的基础上介绍如何在自定义页面上添加按钮 ...
- http遇到的那些坑,iis上传文件报413错误 asp.net MVC
话不多说,直接上解决方法. 修改配置文件 applicationHost.config 具体地址在C:\Windows\System32\inetsrv\config 按照下面的节点进行 添加&l ...
- Apache common exec包的相应使用总结
最近在写一个Java工具,其中调用了各种SHELL命令,使用了Runtime.getRuntime().exec(command);这个方法.但是在我调用某个命令执行操作时,程序就卡在那了,但是其 ...
- AOP 动态织入的.NET实现
AOP(面向切面编程:Aspect Oriented Programming)为诸如日志记录.性能统计.安全控制.事务处理.异常处理等与具体业务逻辑无关,却需要在全局范围进行执行的功能提供了一种良好重 ...