美文网首页
docker镜像和命令

docker镜像和命令

作者: 麟之趾a | 来源:发表于2020-07-05 09:57 被阅读0次

    docker

    LXC: linux Container 容器级虚拟化的解决方案
    docker: 是LXC的增强版
    docker宗旨一个容器,只运行一个进程
    docker镜像是分层构建,联合挂载
    容器编排工具

    • machine+swarm+compose docker自身研发的
    • mesos+marathon apache基金会的
    • kubernets ---> k8s 谷歌研发的

    docker镜像

    镜像标签

    nginx:latest   latest代表最新版
    nginx:stable  stable 代表稳定版中的最新版
    

    镜像和容器的关系相当于程序和进程,因此我们要把容器持久化的数据映射到本地。
    镜像是静态,只读的

    器:是动态的,在最上的一层镜像上加了一层可写层

    安装docker

    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum makecache
    yum -y install docker-ce
    docker version  查看docker版本
    

    配置docker镜像加速器

    # 可以配置阿里云,中国科技大,网易云,七牛云,docker cn
    [root@db02 ~]# cat /etc/docker/daemon.json 
    {
    "registry-mirrors":["https://reg-mirror.qiniu.com/"]
    }
    systemctl start docker
    docker info 查看信息
    

    docker 命令

    新版docker命令进行了分组
    docker image --help   //docker镜像的命令
    docker contanier --help //docker容器的命令
    docker network --help // docker网络的命令
    docker version
    老版docker命令
    docker search   搜索镜像   
    docker pull 拉去镜像     ==  docker image pull
    docker pull <registry>:<port>/<namespace>/<name>:<tag>
    port 默认是443
    如果使用第三方镜像,需要指定
    docker images 列出所有镜像  == docker image ls
    docker ps  列出正在运行的容器 == docker contanier ls
    docker container top 查看那个容器更消耗资源
    docker run [options]
    -i: 交互式
    -t: 给容器一个终端
    -d: 置于后台
    --name: 给运行的镜像一个名字
     docker run -it --name b1  busybox:latest /bin/sh
    # inspect 查看docker对象的详细信息
    docker container  inspect b1  查看容器b1的详细信息
    docker image inspect  busybox:latest  查看镜像 busybox的详细信息
    docker network inspect bridge 查看网络桥bridge的信息信息
    # 基于容器制作镜像
    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    docker commit -a "cazam" -p -c 'CMD ["/bin/httpd","-f","-h","/data"]' b1 czazm:v0.1
    -p 暂停容器,进行打包,防止容器进行写入
    -a 加入作者信息
    -c 改变dockerfile中的命令
    docker tag 重新给镜像打标签
    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    

    测试环境下可以使用alpine版,或其他版本,但在生产环境要自己做镜像,带调试工具,和配置文件调优

    docker 容器中运行的程序的PID为1的,即它停止了,整个用户空间关闭,容器也就关闭,在容器中跑的任何程序,一定不能置于后台,如果程序置于后台,说明此程序,是在某个程序之下运行的。即PID不为1,而容器指定此程序的PID1,所以程序置于后台,就相当于PID为1的程序已经停止了,即容器一启动就停止

    docker镜像的详细描述

    docker 镜像含有启动容器所需的文件系统及其内容,因此用于创建启动docker容器。采用分层构建的机制,最底层为bootfs,其上为rootfs
    bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后,会被卸载已节约内存资源
    rootfs:位于bootfs之上,表现为docker的根文件系统
    传统模式中,系统启动之时,内核挂载rootfs时,会首先将其挂载为只读模式,完整性,自检完成后,将其重新挂载为读写模式
    docker中,rootfs由内核挂载为"只读模式",而后通过联合挂载技术,额外挂载一个可写层
    位于下层的镜像称为父镜像,最底层的称为基础镜像。
    最上层为"可读写层",其下的均为只读层
    docker 镜像使用联合挂载系统 overlay2

    第三方镜像仓库

    quay.io

    镜像生成途径

    dockerfile
    基于容器制作 => 把最上面的可写层,制作成镜像
    docker hup automated builds    => docker hup 基于dockerfile 自动构建镜像
    基于容器制作镜像: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    

    推送镜像

    docker login 登录
    docker push 推送镜像
    我们如果想把镜像,推到第三方仓库,我们镜像的名字签名的标签,必须有为第三方仓库,http的标签。
    如阿里的docker仓库
    https://cr.console.aliyun.com/cn-beijing/instances/repositories
    docker login --username=czazm registry.cn-beijing.aliyuncs.com
    docker tag czazm:v0.1 registry.cn-beijing.aliyuncs.com/nairui/busybox:v0.1
    docker push registry.cn-beijing.aliyuncs.com/nairui/busybox:v0.1
    docker logout 退出登录
    

    镜像的导入和导出

    docker save [OPTIONS] IMAGE [IMAGE...]    导出镜像
    -o  把导出的镜像输出个文件
     docker save -o busybox.gz busybox:latest czazm:v0.1  导出busybox和czazm镜像到busybox的文件
    docker load [OPTIONS]   导入镜像
    -i: 从哪个文件中导入镜像
    docker load -i busybox.gz
    

    相关文章

      网友评论

          本文标题:docker镜像和命令

          本文链接:https://www.haomeiwen.com/subject/huopqktx.html