• docker(一)


    docker与虚拟机的区别:

    Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。Docker未虚拟OS


    docker关键技术:

    Namespace:名称空间【各种名称空间起到绝对隔离的作用】

    联合文件系统【为docker镜像准备,启动容器的时候挂载不同路径,也能起到一定的隔离作用】

    Cgroups【隔离资源(cpu/内存)】

     centos安装docker

    1.安装依赖包

    yum install -y yum-utils device-mapper-persistent-data lvm2

    卸载旧版本(如果安装过旧版本的话)

    yum remove docker  docker-common docker-selinux docker-engine

     2、设置yum源

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

     3、可以查看所有仓库中所有docker版本,并选择特定版本安装

    yum list docker-ce --showduplicates | sort -r

     4、安装docker

     yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce

     5、启动停止docker

    systemctl start docker  #启动docker服务
    systemctl stop docker  #关闭docker服务

    6、查看版本
    docker version

    7、配置加速器
    vim /etc/docker/daemon.json


    {
      "registry-mirrors": [
        "http://hub-mirror.c.163.com"
      ]
    }

    https://registry.docker-cn.com
    http://hub-mirror.c.163.com
    https://docker.mirrors.ustc.edu.cn



    重新加载配置文件并重启Docker

    systemctl daemon-reload
    systemctl restart docker

    可以使用以下命令验证镜像源是否修改成功

    docker info


    docker基本命令:
    https://hub.docker.com/


    docker pull jenkins:版本号 如不指定,默认latest 【jenkins最新的版本已经停止维护】 docker pull jenkins/jenkins:lts

     

    如果删除镜像失败,提示容器正在使用, 

    docker rm -f 容器名  【删除容器】

    查看已经安装的镜像

     docker rmi -f $(docker images -aq)     删除全部镜像

     REPOSITORY 仓库+名称

    TAG 版本号

    IMAGE ID 全球唯一ID

    CREATED 制作时间

    SIZE 磁盘空间

    没网的情况下利用其他的镜像

    docker save jenkins > myjenkins.war    本地打包

    docker load < myjenkins.war   解包

     docker tag jenkins jenkins:8.8.0

    容器运行:

     

     docker run -d --name=myjenkins jenkins/jenkins:lts

    docker ps -s -a

     

       

    docker run -d --name=myjenkins -p 8080:8080 jenkins/jenkins:lts

     前面的8080是宿主机的,后面的8080是容器的

    
    

     启动的时候一般用 docker logs -f myjenkins【及时打印,类似于tail -f】

     

     docker run -d --name=myjenkins -p 8080:8080 -p 50000:50000 -v /home/mydocker/jenkins_home:/var/jenkins_home jenkins/jenkins:lts

     docker run -d --name=myjenkins -p 8080:8080 -p 50000:50000 -v /home/mydocker/jenkins_home:/var/jenkins_home --env JAVA_OPTS="-Xmx8192m" jenkins/jenkins:lts

    JAVA_OPTS 为jenkins环境变量的key值;每个容器的环境变量不一致,可以通过env搜索

    注意:此处需要修改目录权限   

    jenkins_home⽬录的拥有者为root⽤户,⽽容器中jenkins useruid1000

    • chown -R 1000:1000 /home/mydocker/jenkins_home

    启动的时候就需要挂载

    登录容器:

     

     宿主机与容器之间copy文件:

     

    登录容器中也可以查看

     查看当前docker 信息:docker info

    查看容器元信息:

     两个容器间通信:

     

     原理是后者把需要依赖的容器实例的网络信息保存在自己的环境变量中

     注意:--link 只能在一台机上使用,,,
  • 相关阅读:
    编程实现折半法查找
    浅谈C++多态性
    纯虚函数的使用汇总
    虚函数如何实现多态 ?
    重载(overload),覆盖(override),隐藏(hide)的区别
    Qt入门之常用Qt标准对话框之QMessageBox
    Qt5学习笔记(5)——列表框QListWidget类
    python 文件的方法
    python---while循环
    python ---strip()方法,split()方法,删除字符串开头或结尾,字符串分隔
  • 原文地址:https://www.cnblogs.com/huoyunxieshen/p/13160030.html
Copyright © 2020-2023  润新知