• 【Linux】【Services】【Docker】应用


    1. Docker应用:
    镜像:包含了启动Docker容器所需要的文件系统层级及其内容;基于UnionFS采用分层结构实现;

    bootfs,rootfs

    registry:保存docker镜像及镜像层次结构和元数据;
    repository:由具有某个功能的镜像的所有相关版本构成的集合;
    index:管理用户的账号、访问权限、镜像及镜像标签等等相关的;
    graph:从registry中下载的Docker镜像需要保存在本地,此功能即由graph完成;
    /var/lib/docker/graph,

    与镜像相关的命令:
    images
    search
    pull
    push
    login
    logout

    创建镜像:commit, build
    删除本地镜像:rmi

    容器:
    独立运行的一个或一组应用,以及它们运行的环境;

    命令:
    run, kill, stop, start, restart,log,export, import

    启动方法:
    通过镜像创建一个新的容器;run
    启动一个处于停止状态的容器;start

    run命令:
    --name= Assign a name to the container
    -i, --interactive=false Keep STDIN open even if not attached
    -t, --tty=false Allocate a pseudo-TTY
    --net=default Set the Network for the container
    -d, --detach=false Run container in background and print container ID

    步骤:
    检查本地是否存在指定的镜像,不存在则从registry下载;
    利用镜像启动容器
    分配一个文件系统,并且在只读的镜像层之外挂载一个可读写层;
    从宿主机配置的网桥接口桥接一个虚拟接口给此容器;
    从地址池中分配一个地址给容器;
    执行用户指定的应用程序;
    程序执行完成后,容器即终止;

    对于交互式模式启动的容器,终止可使用exit命令或ctrl+d组合键;

    logs命令:获取一个容器的日志,获取其输出信息;

    attach命令:附加至一个运行中的容器;

    Docker Hub:
    registry有两种:
    docker hub:

    private registry:
    (1) 安装docker-registry程序包;
    (2) 启动服务:
    systemctl start docker-registry.service

    (3) 建议使用nginx反代:使用ssl,基于basic做用户认证;

    docker端使用私有仓库:
    (1) 配置文件 /etc/sysconfig/docker
    ADD_REGISTRY='--add-registry 172.16.100.68:5000'
    INSECURE_REGISTRY='--insecure-registry 172.16.100.68:5000'

    (2) push镜像
    (a) tag命令:给要push到私有仓库的镜像打标签;
    docker tag IMAGE_ID REGISRY_HOST:PORT/NAME[:TAG]
    (b) push命令:
    docker push REGISRY_HOST:PORT/NAME[:TAG]

    (3) pull镜像
    docker pull REGISRY_HOST:PORT/NAME[:TAG]

    Docker的数据卷:
    Data Volume

    数据卷是供一个或多个容器使用的文件或目录,有多种特性:
    可以共享于多个容器之间;
    对数据卷的修改会立即生效;
    对数据卷的更新与镜像无关;
    数据卷会一直存在;

    使用数据卷的方式:
    (1) -v /MOUNT_POINT
    默认映射的宿主机路径:/var/lib/docker/volumes/

    (2) -v /HOST/DIR:/CONTAINER/DIR
    /HOST/DIR: 宿主机路径
    /CONTAINER/DIR :容器上的路径

    (3) 在Dockerfile中使用VOLUME指令定义;

    在容器之间共享卷:
    --volumes-from=[] Mount volumes from the specified container(s)

    后跟容器名;

    删除卷:
    docker rm -v CONTAINER_NAME
    删除容器的同时删除其卷;
    docker run --rm选项,表示容器关闭会被自动删除,同时删除其卷(此容器为最后一个使用此卷的容器时);

    备份和恢复:
    备份:
    docker run --rm --volumes-from vol_container -v $(pwd):/backup busybox:latest tar cvf /backup/data.tar /data

    docker的监控命令:
    ps命令:
    -a

    images命令:
    查看当前主机的镜像信息;

    stats命令:
    容器状态统计信息,实时监控容器的运行状态;

    inspect命令:
    查看镜像或容器的底层详细信息;
    -f, --format
    {{.key1.key2....}}

    top命令:
    用于查看正在运行的容器中的进程的运行状态;

    port命令:
    查看端口映射;

    监控工具:google/cadvisor镜像

  • 相关阅读:
    TCC
    使用RocketMQ实现分布式事务
    CentOS关机
    使用grub手动引导linux和windows
    CentOS下X Window与命令行界面的切换
    Centos下 为firefox安装flash插件
    tar.xz文件如何解压
    用Linux命令wget进行整站下载
    CentOS关闭火狐浏览器Flash过期提示
    CentOS普通用户添加sudo权限
  • 原文地址:https://www.cnblogs.com/demonzk/p/7793837.html
Copyright © 2020-2023  润新知