zoukankan      html  css  js  c++  java
  • docker学习

    更新Linux的内核
    yum update


    重启docker服务:
    sudo service docker restart

    systemctl restart docker

    查看docker版本:
    docker --version

    查看docker配置信息:
    docker info
    docker version

    启动docker容器
    systemctl start docker

    启动docker
    start docker

    关闭docker
    systemctl stop docker

    查看docker的运行状态
    systemctl status docker

    查看所有容器(包含已经停止的容器)
    docker ps --all或 docker ps -a

    查看所有docker镜像
    docker images

    镜像搜索:
    docker search image-name

    下载镜像
    docker pull image-name

    删除镜像:
    docker rmi -f 镜像id/镜像名称

    查看当前正在运行docker
    docker ps

    启动容器:
    docker start imagesId

    停止容器“
    docker stop imagesId

    退出容器:
    exit:容器停止退出
    CTRL+P+Q:容器不停止退出

    查看容器日志:
    docker logs -f -t --tail 容器id
    -t是加入时间戳
    -f是跟随最新的日志打印
    --tail数字显示最后多少条

    查看容器内运行进程
    docker top 容器id

    查看容器内部细节(展示json配置):
    docker inspect 容器id

    重新进入:
    docker attach 容器id:直接进入容器启动命令的终端,不会启动新的进程

    docker exex -it 容器id [bashShell]:是在容器中打开新的终端,并且可以启动新的进程

    从容器内拷贝文件到主机上:
    docker cp 容器id :容器内路径 目的主机路径

    docker 镜像是什么:
    镜像是一种轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,
    它包含运行某个软件所需的所有内存,包括代码,运行时,库,环境变量和配置文件

    1.unionFS联合文件系统:是一种分层,轻量级并且高效能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加
    2.Docker镜像加载原理
    3.分层的镜像
    4.为什么Docker镜像要采用这种分层结构呢:共享资源

    特点:
    docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作容器层,
    容器层之下的都是镜像层






    Docker是基于Go语言实现的云开源项目
    Docker的主要目标是 Build ,Ship and Run Any App,Anywhere,也就是通过对应用组件的封装,分发,部署,运行
    等生命周期的管理,使用户的app及其运行环境能够做到“一次封装,到处运行”

    Docker容器在任何操作系统上都是一致的,这就实现了跨平台,跨服务器。只需要一次配置好环境,换到别的
    机子上就可以一键部署好,大大简化了操作


    docker解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术


    虚拟机就是带环境安装的一种解决方案
    它可以在一种操作系统里面运行另一种操作系统,比如windows系统里面运行linux系统,应用程序对此毫无感知,因为虚拟机上
    去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响,这类虚拟机完美的
    运行了另一套系统,能够使应用程序,操作系统和硬件三者之间的逻辑不变


    虚拟机缺点:
    1.资源占用多 2.冗余步骤多 3.启动慢

    Why Docker?
    更轻量:基于容器的虚拟化,仅包含业务运行所需的runtime环境
    更高效:无操作系统虚拟化开销
    更敏捷,更灵活:分层的存储和包管理,devops理念,支持多种网络配置

    linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,有了容器,就可以将软件所需的所有资源打包到一个隔离的容器中,
    容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作所需的资源和配置,系统因此而变得高效轻量,并保证部署在任何环境
    中的软件都能始终如一的运行

    docker和虚拟机的不同
    1.传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上在运行所需应用进程
    2.而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟,因此容器要比传统虚拟机更轻便
    3.每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源


    docker三大特征:容器,镜像,仓库

    docker-cn.com

    Docker镜像image就是一个只读的模板,镜像可以用来创建docker容器,一个镜像可以创建多个容器
    它可以被启动,开始,停止,删除,每个容器都是互相隔离的,保证安全的平台
    可以把容器看做是一个简易版的linux环境(包括root用户权限,进程空间,用户空间,网络空间)和运行在其中的应用程序
    容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读写的

    仓库(Repository)是集中存放镜像文件的场所
    仓库和仓库注册服务器(Registry)是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像
    每个镜像有不同的标签

    仓库分为公开仓库和私有仓库两种形式
    最大的公开仓库是Docker Hub(https://hub.docker.com)
    存放了数量庞大的镜像供用户下载,国内的公开仓库包括阿里云,网易云等;


    阿里云镜像加速配置:

    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://3q5mnu1c.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker


    Linux 下的 Docker 安装与使用
    https://www.cnblogs.com/myzony/p/9071210.html




















  • 相关阅读:
    CentOS 6.5下快速搭建ftp服务器
    Ubuntu增加swap交换空间的步骤
    mysql官方下载安装教程(centos)
    阿里云上遇到: virtual memory exhausted: Cannot allocate memory
    解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误
    centos安装nodejs和配置npm
    JavaScript(二)-精简
    JavaScript(一)
    ease,seae-in,ease-in-out,ease-out区别
    安装 sass 文档
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/13069785.html
Copyright © 2011-2022 走看看