Docker学习总结01

Docker学习总结01
主要内容:
    
1.Docker基本概念
    2.CentOS7安装Docker
    3.Docker_命令
    4.Docker镜像
    5.Docker应用Tomcat容器部署web应用实践

一、Docker基本概念
    1.是什么?能干什么?
        Docker是一种可以把开发ok的环境,整体打包到生产上运行,方便做CI(持续集成),有助于整体发布的容器虚拟化技术,也是一个软件容器平台。解决了环境+配置不同的问题,Docker理念:一次构建,处处运行。
    2.优劣势
    Docker学习总结01
     一个宿主机可运行100~1000个容器,各大厂商都使用基于docker的弹性云,动态调度。
     docker的劣势:对centos6集群支持不够好,安全方面需要优化,镜像还不完善
    3.使用docker场景图
    Docker学习总结01
    4.基本概念
        镜像(image):是只读模板,是千层饼,里面还封装一层层的镜像
        容器(container):是镜像的实例,docker利用容器来运行应用,可以看成一个简易版的linux环境(包含root用户权限、进程空间、用户信息、网络等和运行在其中的应用程序)
        仓库(repository):用来管理镜像
        关系:一个registry可以有多个repository,一个repository中会有多个不同tag的image,一个image可以实例化启动为多个容器
二、CentOS7安装Docker
    1.安装 yum install -y docker
      启动 systemctl start docker
    2.配置国内镜像加速器
      vi /etc/docker/daemon.json
        {
          "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
        }
      systemctl daemon-reload
      systemctl restart docker
    3.docker是如何工作的?
        docker是一个client-server结构系统,docker守护进程运行在宿主机上,然后通过socket连接,从客户端访问;守护进程从客户端接收命令并管理运行在主机上的容器,容器是一个运行时环境,就是集装箱。
    4.为什么docker运行比VM快?
        |--docker比VM有更少的抽象层,减少了Hypervisor的硬件资源虚拟化,而使用docker Engine使运行在容器上的程序使用实际物理机的硬件资源
        |--不需要加载新的内核,内核共享使用的是宿主机的内核
三、Docker_命令
    1.帮助命令
        docker version / docker info 查看docker基本信息
        docker --help 查看docker命令使用指南
    2.镜像命令
        docker images 查看docker镜像
        docker pull tomcat 拉取tomcat镜像
        docker rmi 镜像ID 删除镜像
            docker rmi -f @(docker images -qa) 查询所有镜像并强制删除
        docker search -s 30 tomcat 搜索星星超过30的tomcat镜像
        导出镜像
            docker save tomcat:latest > /root/tomcat.tar.gz
        导入镜像
            docker load < /root/tomcat.tar.gz
    3.容器命令
        以交互方式启动容器:
            docker run -p 8888:8080 -it --name mytomcat  /bin/bash
        以守护进程方式启动容器:
            docker run -d -p 8888:8080 --name mytomcat
        查看在运行的容器
            docker ps 
            docker ps -l 查看最近创建的容器
            docker ps -a 查看运行的所有容器
            docker ps -n 3 查看最近三次运行的容器
        退出容器
            exit 容器停止退出
            Ctrl+P+Q 容器不停止退出
        查看容器日志
            docker run -f -t --tail 100 容器ID 追加输出容器的最后100条日志
        查看容器内运行的进程
            docker top 容器ID
        查看容器内部细节
            docker inspect 容器ID
        进入正在运行的容器
            docker exec -it 容器ID /bin/bash 进入容器操作
            docker exec -it 容器ID ls /tmp 不进入容器,但返回的结果是容器内执行命令的结果
            docker attach 容器ID 直接进入容器命令行
        停止容器
            docker stop 容器名
        删除容器
            docker rm 容器名(注意:先停才能删除)
四、Docker镜像
    1.docker底层是unionFS 联合文件系统
        |--unionFS是一种分层的,轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可将不同目录挂载到同一虚拟文件系统下
        |--镜像是一种轻量级、可执行的独立软件包,用来打包软件可运行环境和基于运行环境尅发的软件,包含某软件运行的所有所需的环境配置
        |--镜像可以通过分层来继承基于基础镜像,可以制作各种具体的镜像
        |--特性:一次加载多个文件系统,从而外面看,只能看到一个文件系统
        |--docker镜像的特点
            只读、当容器启动时,一个新的可写层被加载到镜像顶部,这一层通常作为“容器层”,“容器层”之下都叫做“镜像层”。
五、Docker应用-Tomcat容器部署web应用实践
    1.复制war包到容器中(路径反过来是拷出)
    docker cp /usr/src/jenkins.war mytomcat:/usr/local/tomcat/webapps
    访问;宿主机IP+映射容器的端口/jenkins
    Docker学习总结01