zoukankan      html  css  js  c++  java
  • docker的安装及常用命令

    一:概述

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

    一个完整的Docker有以下几个部分组成:
    1. DockerClient客户端
    2. Docker Daemon守护进程
    3. Docker Image镜像
    4. Docker Container容器

    而容器技术的核心有以下几个内核技术组成:

            1.cgroups            资源管理(限制空间大小)

            2.Namespace       进程隔离

            3.SElinux              安全

    下面有一张docker容器技术和传统虚拟化技术的对比图,很清楚的看见docker之所以比传统虚拟化速度要快,是因为docker没有操作系统

    可以理解为就是一个程序(不占内存,cpu,速度快)这也是和传统虚拟化最大的区别

    docker也有自己的缺点

                                 1.容器的隔离性没有虚拟化强

                                 2.共用Linux内核,安全性有先天缺陷

                                 3.selinux难以驾驭

                                 4.监控容器和容器排错

    二:安装要求

           1.64位操作系统

           2.至少RHEL6.5版本以上,个人强烈建议RHEL7.0版本

           3.关闭防火墙(不是必须)

           4.内核版本必须是3.10以上,可以通过  uname -r   命令检查内核版本

    三:安装docker

    1.已经安装过docker的,需要进行卸载

    命令:yum -y remove docker   docker-client   docker-client-latest  docker-common   docker-latest  docker-latest-logrotate  docker-logrotate  docker-selinux   docker-engine-selinux  docker-engine  

    因为我是新建的虚拟机,并没有安装docker历史

     2.安装docker依赖包

    命令:yum -y install yum-utils device-mapper-persistent-data lvm2

     有两种方法下载docker源,一种是官方,一种是阿里云,个人建议使用阿里云

    命令:cd /etc/yum.repos.d/

    官网地址:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    阿里云地址:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    3.正式安装docker

    命令:yum -y  install docker-ce

    4.启动docker以及测试

    命令:systemctl start docker      #启动docker

    测试:docker run hello-world

     执行命令docker后,如果与下图内容一致 则表示成功

    或者输入ip  a (ifconfig)会出现如下图,也是安装成功

    Docker环境信息

    --info命令       用于检测Docker是否正确安装,一般结合docker version命令使用。   --version命令

    镜像常用列表

    docker  images          查看镜像列表                例:   docker   images

    docker  history           查看镜像制作历史         例:   docker   history   docker.io/centos

    docker  inspect          查看镜像底层信息         例:    docker  inspect   docker.io/centos

    docker pull                下载镜像                        例:     docker pull centos                                例:  docker pull seanlook/centos:centos6

    docker  push              上传镜像            例:      docker push seanlook/mongo

    docker  rmi                删除本地镜像                例:     docker  rmi    docker.io/centos

    docker  save            镜像另存tar包导出镜像    例:     docker  save  docker.io/busybox:latest -o busybox.tar  (导出镜像到busybox.tar里)

    docker    load          导入镜像                           例:     docker load -i nginx.tar

     docker   search         搜索镜像       例:     docker     search     docker.io/centos

    docker   tag               修改镜像名称和标签       例:  docker   tag    docker.io/centos:latest    cen:v1        把镜像名称docker.io和标签latest  改成cen:v1       latest为默认标签

     容器常用列表

    docker  run    运行容器         例:docker run -itd --name tem  centos:latest

    it:是直接使用,一旦退出,容器自动关闭        itd:是放在后台运行        --name 容器名      centos:latest  镜像

    docker  ps    查看正在运行的容器     docker  ps  -a  查看所有容器列表     docker  ps  -aq   仅显示容器id

    docker  stop          关闭容器         查看运行的容器id然后关闭   例: docker   stop   b8f

    docker   start   开启容器      同上  

    docker  restart  重启容器     同上

    docker  attach/exec    进入容器      attach 进入容器后exit退出会导致容器关闭       exec进入容器退出时不会关闭容器     docker    attach   b8f2

    docker  inspect    查看容器底层信息      docker   inspect   b8f

    docker   top         查看容器进行列表           docker  top      b8f2

    docker  rm        删除容器        docker   rm    b8f2          容器运行时删除会提示错误    要先关闭容器

     端口映射   (使用doxker部署服务时需要做端口映射)

    docker pull nginx  //如以下载好nginx  
    docker run -p 8080:80 -d docker.io/nginx  //将80端口映射为8080,或者80:80还是原先的80端口,不可以不写

    netstat -anp | grep 8080  //端口已经开启了

    docker ps  //nginx已经在运行了
    
    
    当docker运行nginx时,外界访问还是docker所在的那个IP地址,就相当于nginx在那台机器上运行一样

     

     

    
    



  • 相关阅读:
    PYTHON 函数总结
    PYTHON 模块总结
    python例题21--30
    python例题11--20
    python例题 1--10
    如何选中表格内同类名的某一行?
    table表格td内内容自动换行
    layer弹出层传值到父页面
    DIV内数据删除操作
    锚记搞定窗口滚动
  • 原文地址:https://www.cnblogs.com/xiaolei123/p/11918450.html
Copyright © 2011-2022 走看看