zoukankan      html  css  js  c++  java
  • centos6.5安装docker

    Docker 包括三个基本概念

    镜像(Image)
    容器(Container)
    仓库(Repository)
    理解了这三个概念,就理解了 Docker 的整个生命周期。

    Docker 镜像

    Docker 镜像就是一个只读的模板。
    例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。
    镜像可以用来创建 Docker 容器。
    Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做
    好的镜像来直接使用。
    容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
    可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其
    中的应用程序。
    注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层

    Docker 容器

    Docker 利用容器来运行应用。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
    可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其
    中的应用程序。
    *注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

    Docker 仓库

    仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际
    上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
    仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大
    的镜像供用户下载。 国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问。
    当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传
    到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
    注:Docker 仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服务。

    一、升级内核(带aufs模块)

    1、yum安装带aufs模块的3.10内核(或到这里下载kernel手动安装:http://down.51cto.com/data/1903250)

    cd /etc/yum.repos.d 
    wget http://www.hop5.in/yum/el6/hop5.repo
    yum install kernel-ml-aufs kernel-ml-aufs-devel

    2、修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般
    新安装的内核在第一个位置)

    # vi /etc/grub.conf
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE: You have a /boot partition. This means that
    # all kernel and initrd paths are relative to /boot/, eg.
    # root (hd0,0)
    # kernel /vmlinuz-version ro root=/dev/mapper/vmvg-root
    # initrd /initrd-[generic-]version.img
    #boot=/dev/vda
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (3.10.5-3.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-3.10.5-3.el6.x86_64 ro root=/dev/mapper/vmvg-root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vmvg/root rd_LVM_LV=vmvg/swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /initramfs-3.10.5-3.el6.x86_64.img
    title CentOS (2.6.32-431.el6.x86_64)
    root (hd0,0)
    kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vmvg-root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vmvg/root rd_LVM_LV=vmvg/swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    initrd /initramfs-2.6.32-431.el6.x86_64.img

    然后重启机器 内核升级成功
    # uname -r
    3.10.5-3.el6.x86_64

    3、升级device-mapper-libs,如果不升级,运行docker -d 会出现 缺少libdevmapper.so.1.02类库的情况:

    yum upgrade device-mapper-libs

    4、下载epel源

    # cd /etc/yum.repos.d/
    # rpm -Uvh http://epel.mirror.net.in/epel/6/x86_64/epel-release-6-8.noarch.rpm

    二、安装docker
    1、首先关闭selinux:

    setenforce 0
    sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config

    2、在Fedora EPEL源中已经提供了docker-io包,下载安装epel:

    rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
    sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

    3、yum安装docker-io:

    yum -y install docker-io

    4、启动docker:

    service docker start
    chkconfig docker on

    5、验证docker是否安装成功:

    # docker info
    Containers: 0
    Images: 0
    Storage Driver: devicemapper
     Pool Name: docker-253:0-526372-pool
     Pool Blocksize: 65.54 kB
     Backing Filesystem: extfs
     Data file: /dev/loop0
     Metadata file: /dev/loop1
     Data Space Used: 305.7 MB
     Data Space Total: 107.4 GB
     Data Space Available: 63.39 GB
     Metadata Space Used: 733.2 kB
     Metadata Space Total: 2.147 GB
     Metadata Space Available: 2.147 GB
     Udev Sync Supported: true
     Deferred Removal Enabled: false
     Data loop file: /var/lib/docker/devicemapper/devicemapper/data
     Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
     Library Version: 1.02.117-RHEL6 (2016-04-01)
    Execution Driver: native-0.2
    Logging Driver: json-file
    Kernel Version: 3.10.5-3.el6.x86_64
    Operating System: <unknown>
    CPUs: 4
    Total Memory: 7.812 GiB
    Name: NH-Test-44
    ID: JV4M:GCH5:QOLJ:34WT:MQKM:MN5T:BHSO:EGUI:4PKH:U7Q3:OBOO:7WHM
    WARNING: No swap limit support

    6、查看docker版本:

    # docker -version
    Client version: 1.7.1
    Client API version: 1.19
    Go version (client): go1.4.2
    Git commit (client): 786b29d/1.7.1
    OS/Arch (client): linux/amd64
    Server version: 1.7.1
    Server API version: 1.19
    Go version (server): go1.4.2
    Git commit (server): 786b29d/1.7.1
    OS/Arch (server): linux/amd64

    三、docker常用命令

    查看版本:docker -v
    查看帮助信息:docker
    在官方仓库搜寻镜像:docker search centos
    查看本地镜像:docker images
    下载仓库镜像到本地:docker pull centos:latest
    上传本地镜像到仓库:docker push NAME[:TAG]
    将镜像保存为tar文件:docker save -o tar文件 镜像ID/镜像tag
    将tar文件加载为镜像:docker load -i tar文件
    修改镜像tag:docker tag 镜像ID 镜像tag
    删除镜像:docker rmi 镜像ID/镜像tag
    制作镜像:docker build -t centos:autosshd - < dockerfile.txt

    dockerfile.txt:

    dockerfile.txt:
    FROM centos
    MAINTAINER YH, http://yuanhuan.blog.51cto.com
    RUN yum install passwd openssl openssh-server -y
    RUN echo '123456' | passwd --stdin root
    RUN ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
    RUN ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
    RUN sed -i '/^sessions+requireds+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd
    RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
    EXPOSE 22
    CMD ip addr ls eth0 | awk '{print $2}' | egrep -o '([0-9]+.){3}[0-9]+';/usr/sbin/sshd -D

    查看镜像历史:docker history 镜像ID/镜像tag
    创建容器:docker run -d --name=容器名称 镜像ID/镜像tag
    启动容器:docker start 容器名称/容器ID
    查看容器:docker ps
    重启容器:docker restart 容器名称/容器ID
    停止容器:docker stop 容器名称/容器ID
    删除容器:docker rm 容器名称/容器ID
    暂停容器:docker pause 容器名称/容器ID
    恢复容器:docker unpause 容器名称/容器ID
    执行命令:docker exec -ti 容器名称/容器ID /bin/bash
    获取容器日志:docker logs 容器名称/容器ID

    参考文档:
    http://www.centoscn.com/image-text/install/2014/1128/4202.html
    http://www.mamicode.com/info-detail-891132.html
    https://docs.docker.com/engine/installation/linux/centos/

  • 相关阅读:
    Linux下Oracle client客户端安装
    深度学习的batch_size
    Ubuntu下CUDA8.0卸载
    Numpy 定义矩阵的方法
    python 按照自然数排序遍历文件 python os.listdir sort by natural sorting
    linux 将终端进行换行
    从LeNet到SENet——卷积神经网络回顾
    神经网络权值初始化方法-Xavier
    FaceAlignment blog
    tensorflow模型量化压缩
  • 原文地址:https://www.cnblogs.com/sfnz/p/5650604.html
Copyright © 2011-2022 走看看