Docker学习

  • 什么是Docker?

    -> 用来装应用的容器

    -> 是开源的,托管在github

    -> 跨平台,支持Windows、Macos、Linux

  • 了解Docker

    (1) Docker思想

      -> 集装箱

      -> 标准化

        - 运输方式

        - 存储方式

        - API接口

      -> 隔离

    (2) Docker解决了什么问题?

      -> 本地环境运行没问题,生成环境运行出问题....(运行环境不一致的问题,它将所有依赖的软件打包集装箱运输到另一个环境)

      -> 某个应用卡,导致系统都很卡(Docker解决了某个应用卡,其他应用不会被影响)

      -> 双11来了,服务器撑不住了(Docker很快的部署好服务器所需的环境和启动,可以快速扩展,弹性伸缩)

  • 走进Docker

    Docker镜像(集装箱)

    Docker容器(进程,虚拟机,文件系统)

    Docker仓库

      - hub.docker.com

      - c.163.com

  • Docker安装(linux)

    安装过程:https://www.cnblogs.com/daishengda/p/9149621.html

  • Docker镜像

    docker pull [OPTIONS] NAME [:TAG]  //拉取镜像,NAME是镜像名,必选;:TAG是指定的版本,可选

    docker images [OPTIONS] [REPOSITORY[:TAG]] //查看本机有哪些镜像

    

    docker run [OPTIONS] IMAGE [:TAG] [COMMAND] [ARG...]  //运行镜像文件,IMAGE是镜像名字

    

    注:如果不写地址,默认到docker官网上拉取镜像

    步骤:

    1、pull先通过本机的Docker Daemon找指定版本的镜像,如果找到不做任何操作,如果不存在,会到docker仓库找我们需要的仓库,如果找到了存在我们本地

    2、docker run先通过本机的Docker Daemon检查本机是否存在该镜像,如果不存在则先pull再run

  • Docker运行Nginx

    Nginx

      -> 持久运行的容器

      -> 前台挂起 & 后台运行

      -> 进入容器内部

    步骤

      (1)先到Docker仓库查找

        阿里云:https://dev.aliyun.com/list.html

        

 

         

 

 

 

       (2)拉取镜像

         从镜像仓库拷贝的下载地址(阿里云下载不完整,所以到中国官方镜像加速)

          docker pull registry.docker-cn.com/library/nginx  //

          

       (3)启动镜像

          docker run registry.docker-cn.com/library/nginx  //前台方式启动docker镜像

          docker run -d registry.docker-cn.com/library/nginx  //后台方式启动docker镜像

          docker ps  //查看启动的docker镜像

          docker stop 348398  //停止docker,348是docker给的id开头相关的

          

           

          

       (4)进入docker启动的镜像容器

          docker exec -it 348 bash  //进入容器,348是docker给的id开头相关的(-t是进入某个中断,-i保持开启)

          

          

          

          注意:ps -ef 没反应解释:
             docker容器相当于开辟了一个新的虚拟机,而这个虚拟机没有安装 ps命令
             解决方法
             1.apt-get update
             2.apt-get install procps
                *****切记:是在你的nginx容器里执行以上命令

    docker网络

      -> 网络类型

        Bridge  Host  None

      -> 端口映射

       

   访问nginx

      1、-p方式启动,设置主机端口和容器nginx开放端口

        docker run -d -p 8080:80 registry.docker-cn.com/library/nginx  //-p 8080:80,8080是主机端口,80是容器nginx开放端口

        

         

        

      2、-P方式启动,开放所有端口映射到随机端口

        docker run -d -P registry.docker-cn.com/library/nginx

       

        

        

  • 制作自己的镜像

    -> Dockerfile  怎么制作自己镜像,每一步操作是什么

    -> docker build  执行Dockerfile给我们描述的事情

    -> 以制作Java Web应用为例

      1、因为JavaWeb需要tomcat容器,先去拉取tomcat和mysql镜像

         docker pull registry.docker-cn.com/library/tomcat:latest

        docker pull registry.docker-cn.com/library/mysql:latest

      2、编辑Dockerfile文件

        vim Dockerfile

        

 

      3、构建docker   

        docker build -t jpress:latest .  /构建,-t jpress:latest,名字和版本

        

          

     4、运行自己制作好的镜像

       (1)先启动mysql镜像

         docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=jpress registry.docker-cn.com/library/mysql

         

         

 

       (2)启动自己制作好的镜像

          docker run -d -p 8888:8080 jpress  

         

    

    5、问题

    如果docker启动镜像老是出现以下问题,可以通过重启docker服务来解决

    service docker restart

    

 

posted on 2018-06-07 15:04  daishengda  阅读(263)  评论(0编辑  收藏  举报