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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java字符串简化_关于java查询语句 如何简化的问题

首先,请你告诉我你使用PreparedStatement的理由,为什么不使用Statement?二者有什么区别?然后 你用到了PreparedStatement的特性了吗?接下来我们在探讨这代码该怎么写。下面的代码仅供参考,基本不具有实践意…

phpcms_v9推送到其他栏目后再在其他栏目删除导致数据库出错

修改phpcms/model/content_model.class.php大概454行的update_category_items()函数private function update_category_items($catid,$action add,$cache 0) {$this->category_db pc_base::load_model(category_model);if($actionadd) {$this->category_db->update…

Linux网络编程小知识(字节序、IP格式、函数、子网掩码、DNS域名解析代码实现)

参考:网络编程前的一些小知识–Linux笔记 作者:一只青木呀 发布时间: 2021-04-12 23:19:10 网址:https://blog.csdn.net/weixin_45309916/article/details/115560197 参考:DNS域名解析 作者:一只青木呀 发布…

java ndk 在哪_NDK简介

一、NDK简介:C/C的动态库。Dalvik通过JNI编程方式调用C/C代码。NDK编程提高软件性能,加密保护APK文件ndk-build NDK编译生成脚本Java编译时会根据java声明文件生成dex文件,即使没有java代码NDK共享库:NDK生成的 .so文件(类…

ARM汇编基础详解(PS学习汇编的原因)

目录前言1.GNU 汇编语法2.Cortex-A7 常用汇编指令2.1 处理器内部数据传输指令(内部寄存器数据非内存数据)2.2 存储器访问指令(RAM)2.3 压栈和出栈指令(了解)2.4 跳转指令2.5 算术运算指令2.6 逻辑运算指令前…

java formatter()_Java Formatter locale()用法及代码示例

locale()方法是java.util.Formatter的内置方法,该方法返回语言环境。此区域设置由格式化程序构造设置。具有语言环境参数的该对象的format方法不会更改此值。用法:public Locale locale()参数:该函数不接受任何参数。返回值:如果未…

linux中tree命令

需要安装tree包(安装:yum -y install tree)。 tree命令的选项说明如下: 【 匹配选项:】 -L:用于指定递归显示的深度,指定的深度必须是大于0的整数。 -P:用于显示统配符匹配模式的目录和文件,但是…

查看LINUX进程内存占用情况

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况…

ARM(IMX6U)裸机汇编LED驱动实验——驱动编写、编译链接起始地址、烧写bin文件到SD卡中并运行

参考:Linux之ARM(IMX6U)裸机汇编LED驱动实验–驱动编写 作者:一只青木呀 发布时间: 2020-08-07 09:13:48 网址:https://blog.csdn.net/weixin_45309916/article/details/107851318 参考:Linux之…

Tools: geos 使用指南

1. 下载geos 2. 进入VS开发人员命令提示3、依次执行如下命令 >VCVARS32.BAT>cd D:\DevTool\geos-3.7.0>atuogen.bat>nmake /f makefile.vc> 编译成功后,会在D:\DevTool\geos-3.7.0\src目录下生成geos.lib, geos_i.lib, geos_c_i.lib, geos.dll, geos…

java 面试 概率论_编程培训-115个Java面试题和答案B.pdf

编程培训-115个Java面试题和答案B.pdf “玩转”Java系列 1 题目115个Java面试题和答案终极(下) 第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类, 垃圾收集器,本章主要讨论异常处理,Ja…

An Introduction to Our Code Breaking Team

小朋友们大家好,知道我们是谁吗?对了,我们就是Team Code Breaking! 关于这个队名,我们讨论了很久,这个Code Breaking似乎是来源于某部电影,又似乎是来源于某本小说,或许单纯地只是觉…

ARM(IMX6U)裸机之I.MX6ULL硬件启动方式的选择

参考:Linux之ARM(IMX6U)裸机之I.MX6ULL启动方式详解 作者:一只青木呀 发布时间: 2020-08-09 16:32:07 网址:https://blog.csdn.net/weixin_45309916/article/details/107891591 目录启动方式的选择①.串行下…

python 操作mongo

1.  导包: import pymongo 2.  建立连接 client pymongo.MongoClient("127.0.0.1",27017) 3.  获取数据库 db client["test1"] 4.  获取集合 col db["t2"] 5.  插入数据: col.insert_one({ name:aa , age:2 …

java 混码_kotlin java 混合代码 maven 打包实现

kotlin简介kotlin是一种针对java 平台的新编程语言。kotlin简洁、安全、务实,并且专注于与java代码的互操作性。它几乎可以用在现在java使用的任何地方:服务端开发、android应用等等。kotlin 可以很好地和所有现存的java库和框架一起工作,而且…

w3 protocol

http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

ARM(IMX6U)裸机之I.MX6ULL启动头文件详解(内部BOOT ROM、IVT + Boot data + DCD + led.bin)

参考:Linux之ARM(IMX6U)裸机之I.MX6ULL镜像烧写以及启动头文件的详解 作者:一只青木呀 发布时间: 2020-08-09 17:10:00 网址:https://blog.csdn.net/weixin_45309916/article/details/107895975 目录BOOT R…

oracle日期函数

ORACLE日期函数大全!2009-03-12 14:16:10日期函数 Oracle PL/SQL Oracle的日期函数相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统…

(转)git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”...

对于git的提交一直很小心翼翼,感觉一不小心就会踩到莫名的坑。 这不, 某天commit 就遇到了On branch master nothing to commit (working directory clean) 一查意思。你的分支很干净? 干净?excuse me? 然后git push …

php 数组降维,php 数组去重的方法参考(一维数组去重、二维数组去重)

本文介绍下,对php数组去除重复的方法,包括一维数组的去重、二维数组的去重。有需要的朋友参考下。首先,来看一维数组重复项的去除方法。使用array_unique函数,例如:输出结果:Array ( [0] > apple [1] &g…