zoukankan      html  css  js  c++  java
  • 部署维护docker环境

    其实前面已经用salt,安装部署了docker应用环境了,过程中还是遇到了不少问题,所以这里再相对仔细的记录一下,docker手机安装过程应注意的事情 安装过程部分参考了刘天斯大师文档部署

    1,安装环境说明

    系统环境:centos6.6
    服务应用了:  haproxy  confd   etcd   docker
    
    主机名               ip      服务角色
    dockerha-152      192.168.36.152    haproxy confd
    dockerEtcd-153     192.168.36.153      etcd
    dockermain-154    192.168.36.154    docker
    

    2,安装依懒包,关闭冲突的服务

    官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中。由于RHEL6和CentOS6的内核版本为2.6,因此必须要先升级内核。
    
    cd /etc/yum.repos.d 
    wget http://www.hop5.in/yum/el6/hop5.repo
    yum install kernel-ml-aufs kernel-ml-aufs-devel -y
    
    修改grub的主配置文件/etc/grub.conf,设置default=0,表示第一个title下的内容为默认启动的kernel(一般新安装的内核在第一个位置)。
    然后重启,重启系统,这时候你的内核就成功升级了,版本应该在3.8以上了,
    uname -r 
    [root@dockermain-154 shell]# uname -r
    3.10.5-3.el6.x86_64
    
    sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
    setenforce 0
    
    在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,安装组件

    (1)haproxy confd

    dockerha-152上操作

    1、haproxy  
    # yum –y install haproxy  
    
    2、confd  
    # wget https://github.com/kelseyhightower/confd/releases/download/v0.6.3/confd-0.6.3-linux-amd64  
    # mv confd /usr/local/bin/confd  
    # chmod +x /usr/local/bin/confd  
    # /usr/local/bin/confd -version  
    

    (2)etcd

    dockerEtcd-153上操作

    # mkdir -p /home/install && cd /home/install  
    # wget https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz  
    # tar -zxvf etcd-v0.4.6-linux-amd64.tar.gz  
    # cd etcd-v0.4.6-linux-amd64  
    # cp etcd* /bin/  
    # /bin/etcd -version  
    etcd version 0.4.6 
    

    (3)docker

    # yum -y install docker-io  
    # service docker start  
    # chkconfig docker on  
    

    4,docker命令使用

    (1)查看帮助

    docker COMMAND --help
    

    (2)搜索可用的境像

    docker search name 如示例:
    
    [root@dockermain-154 src]# docker search centos
    NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
    centos                              The official build of CentOS.                   817       [OK]       
    ansible/centos7-ansible             Ansible on Centos7                              30                   [OK]
    tutum/centos                        Centos image with SSH access. For the root...   13                   [OK]
    jdeathe/centos-ssh-apache-php       CentOS-6 6.5 x86_64 / Apache / PHP / PHP m...   8                    [OK]
    blalor/centos                       Bare-bones base CentOS 6.5 image                8                    [OK]
    jprjr/centos-php-fpm                                                                6                    [OK]
    steeef/graphite-centos              CentOS 6.x with Graphite and Carbon via ng...   6                    [OK]
    tutum/centos-6.4                    DEPRECATED. Use tutum/centos:6.4 instead. ...   5                    [OK]
    layerworx/centos                    A general CentOS 6 image with the EPEL6 an...   2                    [OK]
    jr42/chef-solo-centos               Official CentOS base images with current c...   1                    [OK]
    million12/centos-supervisor         Base CentOS-7 with supervisord launcher, h...   1                    [OK]
    internavenue/centos-percona         Centos-based Percona image.                     1                    [OK]
    jdeathe/centos-ssh                  CentOS-6 6.5 x86_64 / EPEL Repo. / OpenSSH...   1                    [OK]
    jdeathe/centos-ssh-mysql            CentOS-6 6.5 x86_64 / MySQL. Image include...   1                    [OK]
    yajo/centos-epel                    CentOS with EPEL and fully updated              1                    [OK]
    nimmis/java-centos                  This is docker images of CentOS 7 with dif...   0                    [OK]
    lighthopper/orientdb-centos         A Dockerfile for creating an OrientDB imag...   0                    [OK]
    bbrietzke/centos-starter            CentOS 7 with EPEL and SupervisorD              0                    [OK]
    tcnksm/centos-node                  Dockerfile for CentOS packaging node            0                    [OK]
    insaneworks/centos                  CentOS 6.5 x86_64 + @update                     0                    [OK]
    snowyday/centos                     Provide for emacs and Ricty font on X11 en...   0                    [OK]
    dmglab/centos                       CentOS with superpowers!                        0                    [OK]
    akroh/centos                        Centos 6 container that has been updated w...   0                    [OK]
    timhughes/centos                    Centos with systemd installed and running       0                    [OK]
    solict/provisionous-puppet-centos   CentOS provisions with Puppet included          0                    [OK]
    

    (3)下载镜像

    注意镜像名称要写全,就是用docker search name 搜出来的NAME列的名称。

    docker pull name 如示例:
    [root@dockermain-154 src]# docker pull jdeathe/centos-ssh-apache-php
    Pulling repository jdeathe/centos-ssh-apache-php
    ........
    62203f428b1f: Download complete 
    e1812755a4ca: Download complete 
    0910edda3736: Download complete 
    Status: Downloaded newer image for jdeathe/centos-ssh-apache-php:latest
    

    (4)查看已安装的镜像

    [root@dockermain-154 src]# docker images
    REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    centos                          latest              dade6cb4530a        10 days ago         210.1 MB
    jdeathe/centos-ssh-apache-php   latest              f1a489312a4a        3 months ago        297.7 MB
    

    (5)docker容器中运行命令

    docker run命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。 注意:IMAGE=REPOSITORY[:TAG],如果IMAGE参数不指定镜像的TAG,默认TAG为latest。
    [root@dockermain-154 run]# sudo docker run jdeathe/centos-ssh-apache-php echo 'hello world!'
    hello world!
    
    [root@dockermain-154 run]# sudo docker run jdeathe/centos-ssh-apache-php hostname
    db7e1d2269fb
    

    (6)列出容器

     查看最近生成的容器:docker ps -l
     查看正在运行的容器:docker ps
    
     [root@dockermain-154 run]# docker ps -l
    CONTAINER ID        IMAGE                                  COMMAND             CREATED             STATUS                      PORTS               NAMES
    db7e1d2269fb        jdeathe/centos-ssh-apache-php:latest   "hostname"          27 seconds ago      Exited (0) 26 seconds ago                       adoring_babbage 
    

    (7)显示容器标准输出

    [root@dockermain-154 run]# docker ps -l
    CONTAINER ID        IMAGE                                  COMMAND             CREATED             STATUS                      PORTS               NAMES
    db7e1d2269fb        jdeathe/centos-ssh-apache-php:latest   "hostname"          27 seconds ago      Exited (0) 26 seconds ago                       adoring_babbage     
    [root@dockermain-154 run]# docker logs db7e1d2269fb
    db7e1d2269fb
    

    (8)给容器中安装程序或服务

    [root@dockermain-154 run]# sudo docker run centos yum install -y httpd
    Loaded plugins: fastestmirror
    ..........
    
    Dependency Installed:
      apr.x86_64 0:1.4.8-3.el7                                                      
      apr-util.x86_64 0:1.5.2-6.el7                                                 
      centos-logos.noarch 0:70.0.6-1.el7.centos                                     
      httpd-tools.x86_64 0:2.4.6-19.el7.centos                                      
      mailcap.noarch 0:2.1.41-2.el7                                                 
    
    Failed:
      httpd.x86_64 0:2.4.6-19.el7.centos                                            
    
    Complete!
    

    (9)保存对容器中的修改并生成新的镜像

    docker commit CONTAINERID [REPOSITORY[:TAG]]
    REPOSITORY参数可以是新的镜像名字,也可以是旧的镜像名;如果和旧的镜像名和TAG都相同,会覆盖掉旧的镜像。
    
    [root@dockermain-154 ~]# docker commit bd7cc4f4ac92 centos:httpd
    1e0915f3247b86414ebc11fd994fc6abfb590ff3b1ab890949c845ee88b2d9f4
    [root@dockermain-154 ~]# docker images
    REPOSITORY                      TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    centos                          httpd               1e0915f3247b        9 seconds ago       320.8 MB
    centos                          latest              dade6cb4530a        10 days ago         210.1 MB
    jdeathe/centos-ssh-apache-php   latest              f1a489312a4a        3 months ago        297.7 MB
    

    (10)停止正在运行的容器

     

    (11)查看容器或镜像详情

    下面是我刚保存提交产生的新的容器
    [root@dockermain-154 ~]# docker inspect 943e45b6e5f3
    [{
        "AppArmorProfile": "",
        "Args": [],
        "Config": {
            "AttachStderr": true,
            "AttachStdin": true,
            "AttachStdout": true,
            "Cmd": [
                "/bin/bash"
            ],
            "CpuShares": 0,
            "Cpuset": "",
            "Domainname": "",
            "Entrypoint": null,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "ExposedPorts": null,
            "Hostname": "943e45b6e5f3",
            "Image": "centos:httpd",
            "MacAddress": "",
            "Memory": 0,
            "MemorySwap": 0,
            "NetworkDisabled": false,
            "OnBuild": null,
            "OpenStdin": true,
            "PortSpecs": null,
            "StdinOnce": true,
            "Tty": true,
            "User": "",
            "Volumes": null,
            "WorkingDir": ""
        },
    

    (12)删除容器

    docker rm CONTAINERID
    查看所有容器ID:docker ps -a -q
    删除所有的容器:docker rm $(docker ps -a -q)
    

    (13)删除镜像

    docker rmi IMAGE
    

    (14)查看docker的信息,包括Containers和Images数目、kernel版本等

    [root@dockermain-154 ~]# docker info
    Containers: 14
    Images: 56
    Storage Driver: aufs
     Root Dir: /var/lib/docker/aufs
     Dirs: 89
    Execution Driver: native-0.2
    Kernel Version: 3.10.5-3.el6.x86_64
    Operating System: <unknown>
    CPUs: 1
    Total Memory: 989.6 MiB
    Name: dockermain-154
    ID: W4PW:W3XR:FQZE:SBAA:2DS2:BM6N:DV5B:ARF2:3SZM:XGST:5ZF7:DFZV
    WARNING: No swap limit support
    

    (15)创建容器,并像平常ssh登录一样使用

    [root@dockermain-154 ~]# docker run -i -t centos /bin/bash
    [root@7c0414d03fe7 /]# ls
    bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  selinux  srv  sys  tmp  usr  var
    
  • 相关阅读:
    smart client优势在那里? (草稿)
    MSN to expand free email storage to 250MB
    转移阵地了,新地址:http://spaces.msn.com/members/PuGong
    关于XMLHTTP object的OPEN方法
    创建第一个Windows Phone应用程序(一)
    Windows 平台下安装Cygwin后,sshd服务无法启动
    ASP.NET MVC3 Use Remote Validation
    ASP.NET MVC3中使用AllowHtml attribute
    HTML5 Canvas实现简单的俄罗斯方块
    创建第一个Windows Phone应用程序(二)
  • 原文地址:https://www.cnblogs.com/shantu/p/4598869.html
Copyright © 2011-2022 走看看