• Docker基础


    一、容器概念

    • Linux六大名称空间
    UTS	主机名和域名
    IPC	信号量、消息队列和共享内存
    PID	进程编号
    Network	网络设备、网线栈、端口等
    Mount	挂载点(文件系统)
    User	用户和用户组,内核3.8支持
    
    • Control Group(cgroups)
    blkio	块设备IO
    cpu	cpu
    cpuacct	cpu资源使用报告
    cpuset	多处理器平台上的CPU集合
    devices	设备访问
    freezer	挂起或恢复任务
    memory	内存用量及报告
    perf_event	对cgroup中的任务进行统一性能测试
    net_cls	cgroup中的任务创建的数据报文的类别标识符
    
    • 容器核心技术
    chroot
    namespace
    cgroups
    
    • Docker容器引擎:LXC --> libcontainer --> runC
    • Docker Daemon:Docker server端,默认只提供socket文件接入
    • Registry:镜像仓库,默认通信协议HTTPS
    • Containers:容器
    • Images:镜像

    二、Docker安装

    • 基础环境
    64 bits CPU
    kernel-3.10+
    
    • 安装
    # yum install -y yum-utils device-mapper-persistent-data lvm2
    # yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # yum makecache fast
    # yum list docker-ce.x86_64 --showduplicates | sort -r
    # yum install https://mirrors.aliyun.com/centos-vault/7.3.1611/extras/x86_64/Packages/container-selinux-2.9-4.el7.noarch.rpm
    # yum install docker-ce-18.06.0.ce-3.el7 -y 
    
    • 配置镜像加速(以阿里云为例)
    # mkdir -p /etc/docker
    # tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"]  #加速地址登录阿里云后在容器镜像服务中获取
    }
    EOF
    # systemctl daemon-reload
    # systemctl start docker
    # systemctl enable docker.service
    
    • 配置Unix Socket监听
    # vim /etc/docker/daemon.json
    {
      "hosts": ["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
    }
    # systemctl restart docker
    # docker -H 192.168.100.9:2375 ps  #客户端使用tcp连接
    
    • 修改docker0网桥的IP信息
    # vim /etc/docker/daemon.json
    {
      "bip": "10.0.0.254/16",
      "fixed-cidr": "10.0.0.0/16",
      "mtu": 1500,
      "default-gateway": "10.0.0.1",
      "dns": ["114.114.114.114","8.8.8.8"]
    }
    
    • 创建自定义桥
    # docker network create --driver bridge --subnet "172.27.0.0/16" --gateway "172.27.0.1" docker1
    # docker network ls
    # ip link set br-0a9309aaa170 down
    # ip link set br-0a9309aaa170 name docker1  #修改接口名字
    # ip link set docker1 up
    # docker network rm docker1  #删除网桥
    
    • 验证
    # docker info
    # docker version
    
    • 启动一个容器
    # docker pull centos
    # docker run --name d1 -it centos:latest
    # docker start -ai 64d96be72c59  #再次进入容器
    
    • 启动一个nginx容器
    # docker run --name web1 -d nginx:1.14
    # docker inspect e75cfa7018ce |grep IPAddress
                "SecondaryIPAddresses": null,
                "IPAddress": "172.17.0.2",
                        "IPAddress": "172.17.0.2",
    # curl 172.17.0.2
    

    三、Docker Client命令

    • 常见用法(旧)
    attach      	将本地标准输入,输出和错误流附加到正在运行的容器
    build       	从Dockerfile构建映像
    commit      	根据容器的更改创建新图像
    cp          	在容器和本地文件系统之间复制文件/文件夹
    create      	创建一个新容器
    diff        	检查容器文件系统上文件或目录的更改
    events      	从服务器获取实时事件
    exec        	在正在运行的容器中运行命令
    export      	将容器的文件系统导出为tar存档
    history     	显示图像的历史记录
    images      	列出图像
    import      	从tarball导入内容以创建文件系统映像
    info        	显示系统范围的信息
    inspect     	返回有关Docker对象的低级信息
    kill        	杀死一个或多个正在运行的容器
    load        	从tar存档或STDIN加载图像
    login       	登录Docker注册表
    logout      	从Docker注册表注销
    logs        	获取容器的日志
    pause       	暂停一个或多个容器中的所有进程
    port        	列出端口映射或容器的特定映射
    ps          	列出容器
    pull        	从docker仓库中拉取镜像
    push        	将图像或存储库推送到注册表
    rename      	重命名容器
    restart     	重新启动一个或多个容器
    rm          	删除一个或多个容器
    rmi         	删除一个或多个图像
    run         	在新容器中运行命令
    save        	将一个或多个图像保存到tar存档(默认情况下流式传输到STDOUT)
    search      	在Docker Hub中搜索图像
    start       	启动一个或多个已停止的容器
    stats       	显示容器资源使用情况统计信息的实时流
    stop        	停止一个或多个正在运行的容器
    tag         	创建一个引用SOURCE_IMAGE的标记TARGET_IMAGE
    top         	显示容器的运行进程
    unpause     	取消暂停一个或多个容器中的所有进程
    update      	更新一个或多个容器的配置
    version     	显示Docker版本信息
    wait        	阻止,直到一个或多个容器停止,然后打印退出代码
    
  • 相关阅读:
    硬件接口通信速度
    python socket非阻塞及python队列Queue
    pandaboard用wifi时打不开网页
    pandaboard安装ubuntu14.04系统遇到的问题
    创建ROS工作空间和包
    CAN 和 CANopen的区别和联系
    各种通信方式总汇
    ROS中的CMakeLists.txt
    备忘录模式
    class文件概述
  • 原文地址:https://www.cnblogs.com/L-dongf/p/11028721.html
Copyright © 2020-2023  润新知