`

docker实例入门(上)

阅读更多

       docker是目前微服务和devops中流行的自动化部署技术,也是目前对开发和运维岗位新的要求。docker的概念相对比较新颖,抽象,本文以实例为引导,图文并茂,尽量以比较通俗的语言描述docker的概念及使用入门,以帮助初学者快速上手。限于篇幅,本教程分为上下两部分

   

docker基本概念:
docker是一种容器虚拟化技术。是一种实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。
在 LXC 的基础上 Docker 进行了进一步的封装,简化容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
Docker 和传统虚拟化方式的不同之处,传统方式则是在硬件层面实现虚拟化,虚拟机只是共享宿主机的硬件设备,操作系统是自己的。而docker等容器虚拟化技术是在操作系统层面上实现虚拟化,直接复用本地主机(宿主机)的操作系统
 
你可以把任何你想得到的程序放在Docker里。既可以把一个简单的Hello World应用放在Docker里,也可以把一个复杂的网站放在Docker里,不同应用之间相互隔离,有一套自己的运行环境,互不影响

 
                             
  传统的计算机虚拟化(硬件虚拟化)方式与docker虚拟化(操作系统虚拟化)方式的区别
 
Docker解决了什么问题
测试:“你这里有bug”
 
开发:“我本地运行没问题啊,是不是你测试环境的问题”
Docker解决了运行环境不一致所带来的问题。
 
“系统好卡,谁又写死循环了?”
Docker启动时候就已经限定好了最大能够使用的CPU、硬盘等资源,如果超过,只会自己挂掉,丝毫不影响其他的程序。(应用隔离
 
“双11来了,这么多应用要启动!”
运维最怕的节日,需要在各台机器上部署各种各样的环境和服务,比如要装Java、Tomcat等等,还要调试。有了Docker后,这个过程就很轻松。(自动化部署
 
 
沙箱的概念
Sandboxie(又叫沙箱、沙盘),是一个虚拟系统程序,允许你在沙盘环境中运行程序及周边环境,因此运行所产生的变化可以随后删除。它创造了一个独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。
 
Docker核心思想及组件
 
Docker里三大核心:镜像、容器、仓库。
 
为了方便大家理解,我们同java做个类比:
 
镜像(image)--集装箱--类比Java类(静态、编译时)
容器(container)--运行镜像的地方(镜像的一个实例)--类比Java类new出来的对象(动态、运行时)
仓库(repository)--超级码头(可以放各种各样的集装箱)(类似于maven仓库或者java本地library)
 
 
*一个镜像可以创建多个容器
 
使用Docker运行一个程序的过程就是:
1)去仓库(repository)把镜像(image)拉到(pull)本地
2)然后用一条命令把镜像运行(run)起来,变成容器(container)
3)使用容器。
 
下面再稍详细点解释三个组件:
Docker镜像
 
镜像本质上就是一系列文件,既包括应用程序的文件,也可以包括应用运行环境的文件。其利用了linux联合文件系统(unionfs)分层构建镜像。最底层是操作系统的引导(boot),第二层是具体的Linux操作系统,上面是相关的软件。
 
Docker镜像把每一层加载完成之后,这些文件都会被看做是同一个目录,相当于是一个文件系统。Docker的这种文件系统就被称为镜像。
 
Docker容器
可以把容器想象成一个虚拟机。和虚拟机的区别是,容器里面的文件系统是一层一层的,并且最下面的N层都是只读的,只有最上面的一层是可写的。
 
Docker仓库
 
先把本地的镜像传到Docker仓库(push),再由目的地从Docker仓库把镜像拉过去(pull)。
 
仓库(repository)由Docker中央服务器提供:
hub.docker.com(国外,速度慢)
 
Docker常用组件及常用命令


 
学习方式:理解基本概念的基础上重点学习各种操作的命令
实验模拟环境:play with docker 一个docker的模拟沙箱实验环境,注册后登录,每次可用4小时,用完退出或超时后所做的操作自动清理,下次又重新开始。网速可能会比较慢
linux上的安装:用yum命令很快就可以装好,步骤请自己百度。注意centos6.x版本已不支持
中文参考手册:
中文命令手册:
1.docker images
查看当前本地镜像


 
可以指定镜像名
docker images 镜像名


 
 
2. docker pull 镜像名[:tag(标签名/版本名)]
从镜像仓库中拉取或者更新指定镜像。比如,拉取(下载)nginx镜像

 

查看仓库中某个镜像所有版本(以docker hub为例)

https://hub.docker.com/



 



 

 
3. docker run 镜像名(镜像id)
运行指定镜像的容器
 
默认是在前台运行,通常我们要加上-d参数,使其在后台运行,前台还可以做别的事
-d: 后台运行容器,并返回容器ID
-P (大写p): 随机端口映射,将容器内部端口随机映射到宿主机的端口
比如这里,后台运行之前拉取到本地的nginx镜像,可用docker ps命令查看启动的nginx容器

 随机端口号不便于记忆和操作,通过我们可以通过-p参数为宿主机指定一个外部端口号,映射到容器内部某个端口号上,之后就可以在宿主机上使用映射出的端口号访问容器的指定端口,仿佛就在宿主机上运行应用一般。
-p(小写p):指定端口映射,格式为:主机(宿主)端口:容器端口


 在宿主机浏览器中输入localhost:宿主机映射的端口号,可以访问nginx容器的80端口,也就是nginx首页。如果是play with docker这种实验环境,就在实验环境中点击相应链接


 

 4. docker ps

刚才docker run以后,我们已经用过docker ps命令。不加参数时,默认只

查看正在运行的容器



 

 

-a 参数:查看所有容器
 

5. docker exec 容器 命令

在运行的容器中执行命令,相当于从宿主机进入容器内部。
常用参数:
  • -d :分离模式: 在后台运行
  • -i :展示容器输入信息STDIN
  • -t :交互模式,分配一个伪终端。让你在宿主机操作容器内部,仿佛应用部署在宿主机上
通常用的是后面两个参数

 此例中修改容器中nginx首页内容,刷新页面即可看到修改
 

6.docker commit 容器名 镜像名[:tag]

将一个容器提交为新的镜像,即从容器创建一个新的镜像(通常会对该容器做一些修改),常用参数:
-a :提交的镜像作者
-c :使用Dockerfile指令来创建镜像
-m :提交时的说明文字
-p :在commit时,将容器暂停

 
docker run 运行自己的镜像,注意带上版本号(tag)


play-with-docker中查看自己容器提交的镜像启动的新容器
 

 

以上是教程的上半部分,涉及了docker的概念,仓库/镜像/容器的一些常用操作,主要以nginx应用来演示。既可以在真实docker环境中使用,也可以先用play with docker模拟环境做实验。下半部分将会介绍dockerfile文件,如何导入导出镜像,镜像与容器的删除等内容。

下篇链接:https://www.iteye.com/blog/songdi5403-2508553

  • 大小: 31 KB
  • 大小: 22.1 KB
  • 大小: 55.7 KB
  • 大小: 10 KB
  • 大小: 240.7 KB
  • 大小: 11.7 KB
  • 大小: 39.3 KB
  • 大小: 25.5 KB
  • 大小: 19.4 KB
  • 大小: 61.4 KB
  • 大小: 35.4 KB
  • 大小: 19.3 KB
  • 大小: 68.2 KB
  • 大小: 304.2 KB
  • 大小: 14.8 KB
  • 大小: 21.2 KB
  • 大小: 83.7 KB
分享到:
评论

相关推荐

    Docker入门与应用实战 完整版PDF

    Docker 是一个基于go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 本文档主要介绍Docker的基础知识和应用...

    docker从入门到精通,详细教程

    docker从入门到精通,详细教程,适用于从零开始学习docker技术的人,里面包含了详细的命令是用及参数的应用实例,通俗易懂,包教包会包分配,详细的volume解释应用和虚拟网络知识与docker-compose的命令应用及参数的...

    Docker入门与实战详解记录

    Docker入门与实战详细笔记,全部命令及实例,详细的记录,方便查阅。优秀的格式,可作为手册供查阅。来自于Docker入门与实战一书的阅读笔记。

    Docker Swarm入门实例详解

    主要介绍了Docker Swarm 入门实例详解的相关内容,小编觉得十分不错,在这里给大家分享下,需要的朋友可以参考。

    docker入门基础教程

    docker超详细基础教程 Docker的介绍 ...创建Redis实例并启动 访问Redis服务 进入容器 ​检查Redis版本 登录Redis 安装Ngnix代理 拉取镜像 创建数据卷 查看目录 启动Nginx服务 访问Nginx服务

    docker入门到实战

    Docker 入门到实战 本资源摘要信息涵盖了 Docker 的基本概念、架构、应用场景、优点、架构组件、与虚拟机的区别等方面的知识点。 Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 ...

    Docker入门视频课程(通俗易懂)

    这是一门通俗易懂的Docker入门视频课程,通过生动的演示和实例,从基础到实践带领学习者掌握Docker容器技术。课程内容涵盖Docker的基本概念、镜像与容器的使用、容器编排、Docker网络等方面,旨在帮助初学者迅速入门...

    从Docker到Kubernetes之技术实战

    从Docker到Kubernetes之技术实战,从Docker到Kubernetes案例,详细笔记。可以让初学者充分认识从Docker到Kubernetes魅力

    Docker入门指南.docx

    Docker 入门指南 Docker 是一种容器技术,能够实现操作系统虚拟化,让您在资源受到隔离的情况下运行多个应用程序。下面是 Docker 的基本概念、架构、组件、安装和使用等相关知识点: 1. Docker 的优势: Docker ...

    Docker容器技术入门概述.pdf

    Docker 容器技术入门概述 Docker 容器技术是当前非常流行的一种虚拟化技术,用于实现轻量级的容器虚拟化。它可以在宿主机操作系统中运行多个容器,每个容器都可以独立运行不同的操作系统和应用程序。 Docker 容器...

    Docker容器技术入门概述.docx

    Docker 容器技术入门概述 Docker 是什么? ---------------- Docker 是一种容器技术,它可以实现操作系统虚拟化,让您在资源受到隔离的进程中运行应用程序及其依赖关系。 Docker 容器技术可以让您轻松打包应用程序...

    docker入门源码、文档.rar

    当下最火的docker技术,分享给大家进行学习,里面包括源码调用实例、以及文档图说明,基础命令等,并且全都是中文的,很详细,入门首选哦~

    动力节点Docker入门到进阶教程学习笔记分享

    2.通过实例全面讲解了Dockerfile指令 3.深度解析了build cache机制、网络通信过程与通信原理。 4.全面且讲解了目前最流行的三种Docker管理平台及CIG监控平台的搭建、配置及使用。 5.深度讲解了docker distribution、...

    使用Spring Cloud和Docker构建微服务

    使用Spring Cloud和Docker构建微服务的过程中,Docker容器技术提供了一种轻量级、可移植、自给自足的运行环境,这使得微服务能够在任何支持Docker的机器上运行,而且对环境的依赖性降到最低。这在开发、测试和生产...

    docker的概要介绍与分析

    Docker是一个开源的应用容器引擎,它利用操作系统级别的虚拟化技术来创建和管理轻量级的、可移植的软件容器。...书籍:市场上也有关于Docker的书籍,如《Docker实战》、《Docker技术入门与实战》等,这

    云原生-docker操作文档

    Docker可以在一个物理机上运行许多容器实例,提高计算资源的利用率。 Docker的应用场景 Docker可以应用于微服务项目的快速部署、测试和运维管理。使用Docker可以将应用程序、代码打包,轻松地在服务器之间进行迁移...

    docker:Docker入门

    构建Docker Doodles 可以使用原始docker docker build或新的BuildKit应用程序进行docker build 。 夜间构建以及Docker Engine 19.03版本中都有新的... 使用buildx,首先需要创建一个跨平台builder实例,其实例如下:

Global site tag (gtag.js) - Google Analytics