• Centos上Docker环境搭建及常用命令备忘


    基本概念:

    • 镜像(Image)
    • 容器(Container)
    • 仓库(Repository)

    安装要求:需要Centos 6.5以上的版本。最好是7。

    常用命令

    sudo yum update

    设置docker仓库
    $ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/centos/7/
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF

    设置docker开机运行
     chckconfig docker on

    查看已安装镜像
    docker images

    列出所有container
    docker ps -a

    获取ubuntu镜像
    sudo docker pull ubuntu:12.04
     

    华丽的分割线,记录自己个人实践当中的一些坑(按照官方文档也碰到这些坑)

     一直提示client是1.4,server是1.2的。

    解决方案:这时候需要先将之前的都卸载干净
    1、查询安装的docker版本

      $ yum list installed | grep docker
    
      docker-engine.x86_64 1.7.1-0.1.el7@/docker-engine-1.7.1-0.1.el7.x86_64



    2、卸载
      $ sudo yum -y remove docker-engine.x86_64

    3、删除所有图片、容器和卷,运行以下命令:

      
    $ rm -rf /var/lib/docker
     
     然后用脚本来安装(这里理论上应该是可以按照官方文档上面写的找到对应的操作系统版本——比如我的是centos,来安装ce或者ee版,但是按照官方文档来安装总是提示客户端比服务端更新)
     curl -fsSL https://get.docker.com|sh
     docker version的时候只能看到client的版本信息,看不到server的。
    需要使用sudo命令,即sudo docker version,也可以创建docker组,将当前用户加到组中避免频繁敲入sudo命令。
    1、sudo groupadd docker 如果已经存在则会提示groupadd: group 'docker' already exists,则跳过此步骤。
    2、sudo usermod -aG docker $USER
    3、需要登出重进,然后就不需要总是带着sudo命令了。
     
    阿里云的ECS上有虚拟网卡,和docker0冲突,需要修改路由配置:
    $ sudo route del -net 172.16.0.0 netmask 255.240.0.0
    https://bbs.aliyun.com/read/176982.html?spm=5176.7114037.1996646101.13.MW6VIp&pos=5
     

    使用国内的镜像站
    由于网络的原因,如果用docker官方的镜像站下载是非常慢的,因此可以选择国内的docker镜像站点,我这边用的是阿里云的
    参见文档:https://cr.console.aliyun.com/?spm=5176.1971733.0.2.z9GLRE#/accelerator

     

    启动镜像后,如何进入容器内部执行shell命令

      docker exec进入Docker容器
        $ sudo docker ps  
        $ sudo docker exec -it 775c7c9ee1e1 /bin/bash  

    使用镜像后,在容器中发现没有root权限的问题

    docker run --name myjenkins -d -u 0 -p 8080:8080 -p 50000:50000 -v myjenkins-volumn:/myjenkins-volumn jenkins

    官方的启动命令中,需要略微修改一下,加上 -u 0 ,这个0 的意思是覆盖容器中内置的帐号,该用外部传入,这里传入0代表的是root帐号Id。这样再启动的时候就应该没问题了。

     

    echo -e "停止slark服务"
    /usr/local/apache-tomcat-7.0.70/bin/shutdown.sh >/dev/null 2>&1
    NUM=$(ps aux |grep "apache-tomcat-7.0.70" |grep -v "grep" |wc -l)
    if [ "$NUM" != "0" ];then
            SERVICE_PID=$(ps aux |grep "apache-tomcat-7.0.70" |grep -v "grep" |awk -F " " '{print $2}')
            kill -9 ${SERVICE_PID}
    fi
    echo -e "清理文件夹/usr/local/apache-tomcat-7.0.70/webapps/slark/"
    rm -rf /usr/local/apache-tomcat-7.0.70/webapps/slark/*
    echo -e "复制文件"
    cp -a /usr/local/wars/slark.war  /usr/local/apache-tomcat-7.0.70/webapps >/dev/null 2>&1
    echo -e "启动slark服务"
    /usr/local/apache-tomcat-7.0.70/bin/startup.sh >/dev/null 2>&1
  • 相关阅读:
    题解——草莓(树上切割)
    题解——碰杯
    SCOI2019凉凉记
    题解rotinv
    矩阵快速幂
    质数及线性筛
    题解[ZJOI2007]矩阵游戏
    【实验舱国庆营模拟】Day3 A.code
    【实验舱国庆营模拟】Day2 A.divide
    【纪中集训2019.08.25】【JZOJ6371】树
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/5707753.html
Copyright © 2020-2023  润新知