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.163.com/library/nginx:latest
》前台运行nginx容器(前台启动直接利用ctrl + c就可以停掉)
docker run hub.c.163.com/library/nginx
》后台运行nginx容器
docker run -d hub.c.163.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 8088:80 hub.c.163.com/library/nginx
坑01:IP问题
未完待续...2018年11月11日16:59:14
转载于:https://www.cnblogs.com/NeverCtrl-C/p/9942592.html
Docker03 Docker基础知识、Docker实战相关推荐
- Docker基础知识:Containers,Namespace,CGroups
<Linux环境使用命名空间编写一个简单的容器应用程序:namespace,container,cgroups>https://rtoax.blog.csdn.net/article/de ...
- Docker基础知识及坑
目录 1.实用docker工具 2.问题 3.批量删除docker镜像 4.未解决的问题: 5.下载仓库的命名空间为A的镜像,推送到仓库的命名空间为B的地方: 6.centos6.3,内核3.10.0 ...
- docker基础知识
Docker 是一个能够把开发应用程序自动部署到容器的开源引擎.Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案. Docker 的基础是 Linux 容器(LXC)等技术,它提供了一个简 ...
- docker 基础知识分享ppt
给团队做的docker基础分享ppt, 见下面的附件. https://files.cnblogs.com/files/harrychinese/docker_intro.pptx 转载于:https ...
- 静茹docker容器的几种方法_1-容器和docker基础知识
[TOC] ## 一 容器的概念 ### 1.什么是容器: 容器是在隔离的环境里面运行的一个进程,这个隔离的环境有自己的系统目录文件,有自己的ip地址,主机名等. 也可以说:容器是一种轻量级虚拟化的技 ...
- 《两地书》--Kubernetes(K8s)基础知识(docker容器技术)
大家都知道历史上有段佳话叫"司马相如和卓文君"."皑如山上雪,皎若云间月".卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武 ...
- Python 基础知识及实战
Python是一门简单易学的编程语言,支持非常多的模块和功能,适合于初学者.Python属于解释型语言,这意味着你在运行时不需要进行编译,解释器会解释并运行你的代码.这虽然会降低运行速度(不到几秒), ...
- Docker基础------安装docker,以及一些常用的docker命令,docker网络,自定义docker网络
centos安装docker 1.卸载旧版的docker yum remove docker \docker-client \docker-client-latest \docker-common \ ...
- 5.Docker基础之Docker网络
文章目录 Docker 网络 理解 Docker0 --link 自定义网络 网络连通 实战:部署 Redis 集群 Docker 网络 理解 Docker0 清空所有环境 docker rm -f ...
最新文章
- 用MATLAB也能做AI系统,而且简单易上手?
- Transformers资料汇总!从原理到应用
- The CLR’s Execution Model(Chapter 1 of CLR via C#)
- ios开发循环网络请求_谈谈 iOS 网络层设计(SSJNetWork封装缓冲,log日志,自动取消网络请求)...
- SAP UI5 Web Component React应用如何在Component之间跳转
- Springboot中进行日志打印需要的信息
- Ubuntu镜像下载地址
- lnmp环境搭建完全手册(四)——lnmp搭建(源码安装)
- WinForm DataGridView 绑定泛型List(ListT)/ArrayList不显示的原因和解决
- java定时器与ThreadLocal编程陷阱
- 用别人的血汗去染自己的红顶子,谁愿意去干谁干,我是不干
- 国美易卡对IP层数据进行处理,国美易卡对TCP/IP的封装
- 计算机控制面板 关机时间,怎么设置电脑的自动关机时间
- 未来十年人工智能和机器学习,主要造就了哪些新职位?
- 什么是域名到期?域名到期抢注要怎么进行?
- 《白夜行》:请让孩子健康成长
- python在哪下载安装,python软件在哪下载
- 什么是骨传导耳机?骨传导耳机好不好,看完这些你就知道了!
- dcoker常用命令
- LeetCode-136. 只出现一次的数字(java)
热门文章
- 使用pssh进行并行批量操作
- java-servlet
- Jmeter服务器监控插件使用
- 【数论】[CF258C]Little elephant and LCM
- C# 判断给定大数是否为质数,目标以快速度得到正确的计算结果。
- 【原】P2P应用的探究
- java中判断字段真实长度(中文2个字符,英文1个字符)的方法
- struct1标签使用方法笔记
- nodejs开发 过程中express路由与中间件的理解 - pyj063 - 博客园
- vue调用顺序(初学版) index.html → main.js → app.vue → index.js → components/组件 测试