Docker

 

 

特点:

  1、开源

  2、应用容器引擎

  3、可以实现虚拟化

  4、沙箱机制,相互之间不会有任何接口

说明:

  docker通过创建容器,在容器中部署项目,可以实现非常快速的容器的创建。

  可以实现非常快速的创建多个容器(理论上无限制)

   通过容器化的技术,可以实现资源的共享,相互之间互不影响,各自完成自己的工作。是一种轻量级的部署容器。

  docker是一个请求级的的应用部署程序,与虚拟机而言,不需要创建虚拟机的操作系统,并且通过docker引擎可以快速高效的实例化容器。

  

 

  速度:Docker速度接近物理主机速度

  资源:虚拟机运行时会产生大量的临时文件,占有用计算机的资源。

      当docker容器停止时,会将生成的临时文件全部删除。

  操作系统:虚拟机可以部署到任何操作系统中。   

        docker只能部署到linux7及以上版本。内核要求必须是3.10以上版本。

  沙箱:安全机制(隔离,互不影响)

  

 

linux系统安装使用

  1、linux查询本

  2、重启网卡

   

  

  

  linux命令

    1、修改ip地址

      cd /etc/sysconfig/network-scripts/

      vim ifcfg-ens33  改为自己的网关

      重启网卡:service network restart

      查看是否有网:ping www.baidu.com

    2、查询linux内核版本

      uname -a

      如:Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

 

模块介绍:

    clients:表示docker服务的客户端 

    hosts:表示真实的物理主机

    registers:docker的镜像仓库

 

docker的功能模块介绍:

  容器的概念:真实的服务。其中可以包含任何软件(JDK/tomcat/CentOS-6.5等)

  Image:镜像。docker官网提供了好多的软件的镜像服务。如果容器想创建,必须依赖于Image模板。容器是可以修改的(编辑)。镜像是只读的。

      通过镜像可以生产无数的容器。

      通过网络可以将docker镜像服务下载到本地

  总结:

      1、当docker需要创建容器,首先应该先获取镜像文件Image。

      2、当本地没有Image镜像时,需要联网去官网中下载

      3、当下载完成后,再次根据镜像文件生成具体的容器。

 

 

镜像网站介绍:

  1、docker官网

  2、阿里云镜像:https://dev.aliyun.com/search.html

  3、灵雀云镜像:https://hub.alauda.cn/

 

docker的使用:

  1、安装docker

  获取镜像地址:

    sudo yum install docker -ce 

    yum:源

  2、启动docker

    启动: service docker start

    停止: service docker stop

    重启: service docker restart

  3、docker容器的命令

     查询redis镜像:docker search redis

    进入工作区:cd /etc/sysconfig/network-scripts/ 

  4、docker获取redis镜像

    获取redis:docker pull redis:3.2.8

      1、查询镜像文件:docker images

      2、加载镜像文件:docker load -i redis-3.2.8.tar

    启动容器  docker run -d --name redis7000 -p 7000:6379 0db2a690b89e

    进入容器

      查询容器:docker ps

      查询全部容器:docker ps -a 

      关闭容器:docker stop 0db2a690b89e(容器id)

      开启容器:docker start 0db2a690b89e(容器id)

      删除容器:docker rm 0db2a690b89e(容器id)

      进入容器内部:docker exec -it 7ff5cb6eb98c(内部连接id,非容器id)  bash 

        进入到redis:redis-cli -p 6379

    导出镜像文件

      docker save -o redis-3.2.8.tar redis:3.2.8  镜像id

      -o:根据指定名称生成镜像,当镜像导入时名称与镜像名称一致。

    redis通过暴露在外部的7000端口进行访问

  docker命令

命令

用法

 yum -y install docker

下载最新版的docker

service docker start

启动Docker服务

service docker stop

停止Docker服务

service docker restart

重新启动Docker服务

docker version

查看Docker的版本号

docker pull 镜像地址:版本

从镜像仓库中下载

docker save a2a69ca5184a > jt-centOS6.tar

根据镜像id导出镜像

docker save -o redis-3.2.8.tar redis:3.2.8

根据镜像名称导出镜像

docker load -i docker-centos-6.5.tar

指定jar包导入镜像文件

docker rmi a2a69ca5184a

根据Id号删除镜像文件

docker rmi -f a2a69ca5184a

根据容器id强制删除镜像文件    删除镜像前需要先关闭容器

docker images

查询所有镜像文件

ocker inspect index.alauda.cn/tutum/centos:6.5

查看镜像文件细节信息

docker tag 旧镜像名称和端口 redis-ali:0.0.1

修改镜像的名称

docker build -t 镜像名称:版本号

根据dockerfile来创建镜像文件

docker run -d --name 容器名 镜像名:版本号

根据镜像名称启动容器

docker run -d --name 容器名(自定) 镜像id号

根据镜像id启动容器

docker run -d -p 虚拟机端口:镜像端口 --name 容器名 镜像名:版本号

启动容器,并指定暴露端口

docker ps

查看活动的docker容器进程

Docker ps -a/-all

查看全部的容器

docker exec -it 容器id bash

进入指定的容器

docker stop 容器Id号

停止指定容器

docker start 容器Id号

启动创建好的容器

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

关闭和删除所有的容器

docker rm 容器Id

删除指定的容器

  制作镜像

    要求:使用CentOS6.5版本 + jdk1.8 + tomcat7 + 项目 制作镜像

    1、导入jdk1.8

    2、创建dockerfile文件(文件名不能错)vim dockerfile  

      思路:

        1、需要引入操作系统 CentOS6.5 FROM

        2、添加jdk环境变量

          a)JAVA_HOME  EVN

          b)PATH

          c)CLASSPATH

      文件模版:  

#添加contos6.5文件
FROM a2a69ca5184a

#添加JDK1.8  centos+jdk
ADD jdk-8u51-linux-x64.tar.gz /usr/local/src
ENV JAVA_HOME=/usr/local/src/jdk1.8.0_51
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#centOS6.5+JDK1.8+tomcat7
ADD apache-tomcat-7.0.55.tar.gz /usr/local/src
ENV CATALINA_HOME /usr/local/src/apache-tomcat-7.0.55
ENV PATH=$PATH:$CATALINA_HOME/bin

#添加ROOT.war包文件
COPY ROOT.war $CATALINA_HOME/webapps/ROOT/ROOT.war
WORKDIR $CATALINA_HOME/webapps/ROOT
RUN jar xvf ROOT.war
RUN rm ROOT.war



#对外暴露的端口号
EXPOSE 8080
CMD ["/usr/local/src/apache-tomcat-7.0.55/bin/catalina.sh","run"]
dockerfile

     3、生成镜像文件

      命令:docker build -t 镜像名称:版本号   ./

          docker build -t cent-jdk:0.0.1 ./

      -t:按钮指定的文件名称生成

      ./:在当前文件夹下

      测试:

        根据生成的镜像文件测试镜像是否成功生成

        启动容器:docker run -d --name cent-jdk 33842afa99a7

        进入容器:docker exec -it 7ff5cb6eb98c(内部连接id,非容器id)  bash 

        

   dockerfile命令

  

序号

关键字

说明

 

FROM

指定基础镜像的来源

2

ADD

添加镜像文件,会自动解压

3.

EVN

添加环境变量

4.

MAINTAINER

作者

5.

WORKDIR

设置当前工作目录 cd

6.

VOLUME

设置数据卷,挂载主机目录

7.

EXPOSE

指定对外暴漏的端口

8.

RUN

执行命令 sh

9.

CMD

执行命令 exec,一个Dockerfile只能一个

10

COPY

复制文件

11.

ENTRYPOINT

docker run时参数可以覆盖,指定参数值

posted @ 2018-03-22 10:52  项羽齐  阅读(178)  评论(0编辑  收藏  举报