• 十分钟快速了解docker


    快速了解下docker。废话少说,开干!

    一、相关概念

      什么是虚拟化技术?

    维基百科中的解释是这样的:

    虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。

    对于一台计算机,我们可以简单的划分为三层:从下到上依次是物理硬件层,操作系统层、应用程序层

     

    二、docker概念

      1. Docker是世界领先的软件容器平台。
      2. Docker使用Google公司推出的Go语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。

       由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker最初实现是基于LXC。

       docker的主要三个概念 

        镜像: 可以理解为模板; 虚拟机安装系统,镜像就是系统的安装文件模板 ghost/iso文件 ; docker的镜像就是用来生成容器的模板。

        仓库: 存储管理镜像的仓库; docker hub; 类似于maven仓库;我们可以把构建后的镜像上传到服务器,从而可以在任何地方使用到这个镜像。 

        容器:  通过镜像模板生成的一个具体实例, 可以对容器进行管理;删除/创建/启动/停止/重启/暂停/ ; 也可以将修改后的容器生成一个镜像.

       

    三、环境搭建

    3.1 离线搭建docker

    1. 下载离线包
    https://download.docker.com/linux/static/stable/x86_64/
    
    2. 解压
    tar -zxvf *.tar.gz 
    
    3. 移动目录位置
    cp docker/* /usr/bin/

    4. 新建 docker.service 文件放在 /etc/systemd/system/目录下,文件内容如下:
    [Unit]
    Description=Docker Application Container Engine
    Documentation=https://docs.docker.com
    After=network-online.target firewalld.service
    Wants=network-online.target
     
    [Service]
    Type=notify
    # the default is not to use systemd for cgroups because the delegate issues still
    # exists and systemd currently does not support the cgroup feature set required
    # for containers run by docker
    ExecStart=/usr/bin/dockerd
    ExecReload=/bin/kill -s HUP $MAINPID
    # Having non-zero Limit*s causes performance problems due to accounting overhead
    # in the kernel. We recommend using cgroups to do container-local accounting.
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    # Uncomment TasksMax if your systemd version supports it.
    # Only systemd 226 and above support this version.
    #TasksMax=infinity
    TimeoutStartSec=0
    # set delegate yes so that systemd does not reset the cgroups of docker containers
    Delegate=yes
    # kill only the docker process, not all processes in the cgroup
    KillMode=process
    # restart the docker process if it exits prematurely
    Restart=on-failure
    StartLimitBurst=3
    StartLimitInterval=60s
     
    [Install]
    WantedBy=multi-user.target
    5. 检查安装情况
    docker -v
    docker version

      

    启动docker 
    systemctl start docker
    查看docker信息
    docker info

       

       

    四、快速部署一个nginx应用

    4.1 搜索镜像列表

    docker search nginx

    4.2 拉取镜像列表到本地

    docker pull nginx

    4.3 查看本地镜像

    docker images

    4.4 通过镜像创建容器

     docker create --name=test_nginx -p 19398:80 nginx

    4.5 查看状态

    docker ps -a

    4.6 启动容器

     docker start|stop|restart|pause|unpause {containerId}

    4.7 修改容器内容

    docker exec -ti containerId /bin/bash


    4.8 保存修改后的容器内容

    docker commit containerId imageName
    

      

    五、命令总结

    5.1 镜像命令

    docker  rmi xx   删除镜像

    5.2 容器命令

     

    如果觉得文章对您有用,请点下推荐。您的支持将鼓励我继续创作!

  • 相关阅读:
    【数据结构】树的DFS序&欧拉序
    Codeforces 1335E2
    Codeforces 1335E1
    Codeforces 1338A/1339C
    【数据结构】ST算法
    Codeforces 1334C
    Codeforces 1333D
    Codeforces 1333C
    python中的socket编程实例与查看端口占用
    java中打印数组
  • 原文地址:https://www.cnblogs.com/pengsn/p/14661831.html
Copyright © 2020-2023  润新知