Docker

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Docker 是一个开源的应用容器引擎,基于 Go语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

介绍:


  Docker 是一个开源的应用容器引擎,基于 Go语言并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。


应用场景:


   1.Web 应用的自动化打包和发布。


    2.自动化测试和持续集成、发布。


    3.在服务型环境中部署和调整数据库或其他的后台应用。


       4.从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境


优点:

   1、简化程序:Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。


   2、避免选择恐惧症:如果你有选择恐惧症,还是资深患者。那么你可以使用 Docker 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。


   3、节省开支:一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。


架构: 

 

    Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。


  Docker 容器通过 Docker 镜像来创建。


  容器与镜像的关系类似于面向对象编程中的对象与类。



核心技术:

       1.镜像:相当于一个集装箱,就是一系列文件,如应用程序的文件,环境文件等,分层存储,全部为只读,只有最上面一层为可读可写


    2.仓库:码头,目的是是传输镜像,先将镜像传输到仓库里,然后目的地再从仓库里面拉取镜像,仓库是由docker提供的,国内有网易的


    3.容器:运行程序的地方,本质就是一个进程,相当于一个虚拟机,就是最上层的container


     Build:构建镜像


     ship:运输镜像


     run:运行镜像


  

通俗易懂:去仓库把镜像拉到本地,用一条命令把镜像运行起来,变成容器


 

安装Docker


这里用ubuntu

        1,内核版本要大于3.10       uname -r


        2.系统要为最新版本  更新 apt-get update


        3,安装Docker:安装最新版:curl -s https://get.docker.com|sh


        4.查看是否安装成功:docker version


        5.启动docker : service docker start


开始:


  拉取镜像:docker pull [options] name[:tag]    name:镜像名称,:tag版本,不指定的话则拉取最新,options为一些参数,  执行命令后会从docker远程仓库拉取镜像到本地


  查看本机有那些镜像:docker images [options][repository[:tag]]



  运行:docker run image  : image镜像名字



上图解释:docker pull : 本机发起一个拉取镜像的命令。首先在本地查看镜像是否存在,如果存在就不用去远程仓库拉取,如果不存在,就去远程仓库拉取到本地


docker run:先将命令发送到本地,如果本地有镜像就直接执行,如果没有,就去远程仓库拉取下来运行,变成docker的容器,相当于执行docker pull,

 

命令:

  docker ps:查看正在运行的docker容器


  docker run -d nginx:在后台运行


  docker run nginx:前台运行


  docker stop 容器ID:停止镜像


  docker exec 容器Id  : 进入容器内部,    docker exec --help查看参数



  container command:容器的名字或者Id


 

常用安装:


  安装tomcat:


    1:docker search tomcat,搜索镜像


    2:docker pull tomcat,拉取镜像


    3:docker images , 查看镜像是否拉取成功


    4:docker run -d -p 8080:8080 tomcat , 运行镜像


      -d:后台运行


      -p:端口映射,如果为-P,端口随即分配


    5:docker ps , 查看是否运行成功

  

  安装MySQL:


    1:docker search mysql


    2:docker pull mysql:5.7


      这里我指定版本为5.7,如果不指定就为最新版


    3:docker iamges


    4:启动容器:docker run -d -p 3306:3306 -e


MYSQL_ROOT_PASSWORD=123456 mysql:5.7


    5:docker ps

 

  安装其他的也类似, 

 

部署java程序到Docker


      1.安装tomcat,mysql,docker的tomcat也附带了jdk,


    2.将程序打成war包


    3.创建自己的镜像Dockerfile,

 

from tomcat   #运行在tomcat,tomcat为基础镜像
MAINTAINER steak  #镜像所有者,可写可不写
COPY jpress.war /usr/local/tomcat/webapps    #将要部署的文件放到tomcat   webapps目录下


   4.构建镜像:docker build 文件所在目录 ,

   


   5.查看镜像是否构建成功:docker images , 如果镜像忘记设置名字,使用命令:docker build -t 名字:版本


     6.运行镜像:docker run -d -p 端口:端口   镜像名字  

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
运维 Java Android开发
认识Docker
认识Docker
|
5月前
|
虚拟化 云计算 Docker
带你一分钟看懂 “Docker”
2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。
44 1
|
10月前
|
Kubernetes Linux 持续交付
什么是Docker?
什么是Docker?
111 0
|
10月前
|
存储 安全 测试技术
Docker初步了解
Docker初步了解
53 0
|
存储 缓存 Shell
docker 从 0 到 1
容器技术对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此称为容器。Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。
77 0
|
运维 Linux Go
首先我们要知道 Docker 是什么?能干什么?
首先我们要知道 Docker 是什么?能干什么?
2171 1
|
网络协议
Docker
Docker
114 0
|
关系型数据库 Linux KVM
Docker是什么,有什么用?
Docker是什么,有什么用?
8064 0
Docker是什么,有什么用?
|
存储 Kubernetes Linux
Docker-01-初识
Docker-01-初识
|
Kubernetes Linux API
Docker限制
Docker系列文章: 此篇是Docker系列的第十篇,大家一定要按照我做的Demo都手敲一遍,印象会更加深刻的,马上就开始Kubernetes,加油!一起前行! 1. 为什么要学习Docker 2. Docker基本概念 3. Docker镜像基本原理 4. Docker容器数据卷 5. Dockerfile 6. Docker单机网络上 7. Docker单机网络下 8. Docker单机网络实战 9. Docker隔离技术