docker镜像与容器管理(二)

镜像: 静态的只读文件,是一个只读的模板。

容器: 是从镜像创建的一个运行实例,容器是带有运行时需要的可写文件层。

镜像工作原理:
    启动一个新的容器时,docker会加载镜像,在镜像之上添加一个读写层,
    并将镜像中的目录复制一份到/var/lib/docker/containers/容器ID的目录下,
    容器内修改已存在的文件,会将该文件从只读层复制到读写层,并覆盖只读层的文件,实现了文件系统隔离,
    当删除容器后,读写层的数据将会删除,镜像不变。

镜像文件存储:
    docker相关文件:     /var/lib/docker/目录下。
    /var/lib/docker/overlay2/容器ID/diff     #每层与父层之间的文件差异。

镜像管理命令:
    获取: docker pull  imagename:tag
    上传: docker push  仓库名称
    查找: docker search imagename:tag
    列出本地镜像: docker images
    修改已有镜像: 
docker run -itd --name test02  ubuntu:16.04   运行容器
docker attach test02   进入容器
安装相关服务。
docker commit -m "说明信息"  -a "指定用户信息"  容器ID  仓库名:tag

用Dockerfile构建新镜像: docker build
    删除镜像:     docker rmi  imagename
    删除容器:     docker rm containername
    直接删除一个运行中的容器:   docker rm  -f  containername
    批量删除容器:     docker rm -v $(docker ps -aq -f status=exited)

导出镜像:     docker save -o  包名  image:tag
    导出正在运行的容器:  docker export -o centos7 test01

导入镜像: docker load  -i  包名
    导入正在运行的容器为镜像: # docker import  centos7  test01:7

注意:
    export,import :
       导出后再导入的镜像会丢失所有的历史,无法回滚之前的层。
    save,load :
       保存后再加载的镜像没有丢失历史和层,可持久化镜像,可以做到层回滚。

###容器管理:

##查看容器:
    docker ps :列出当前所有正在运行的container
    docker ps -l :列出最近一次启动的container
    docker ps -a :列出所有的container
    docker ps -q :列出最近一次运行的container ID

##运行容器:
    运行容器: docker run -itd  image:tag  /bin/bash
         -itd: i 交互, t 伪终端, d 后台运行。

##进入正在运行的容器:
        #docker run -itd --name test2 test01:latest /bin/sh
        #docker exec -it test2 /bin/bash
    
        或者:
        #docker attach test2
        使用ctrl+p+q 快捷键退出。

或:
        nsenter工具:
         使用nsenter连接到容器,需要先找到容器进程的PID:
         #PID=$(docker  inspect --format "{{ .State.Pid }}" containerid)
         #nsenter --target $PID  --mount  --uts --ipc --net --pid

查看docker版本:  docker version
    查看系统(docker)层面的信息:  docker info

指定容器总是重启:
        docker run -itd --name test3  --restart=always centos:7

查看状态(前台运行): docker stats
    查看状态(后台运行): docker stats --no-stream

获取容器输出信息并查看容器运行日志: 
     docker logs  containerid

终止容器:   docker stop
    强行终止容器:  docker kill containerid

终止容器后,可以用docker start命令重启容器。
    先终止,再重启容器: docker restart 命令。

查看image或container的底层信息:
     docker inspect <image|container>

原文地址:http://blog.51cto.com/liyuanjie/2137403

时间: 2024-10-11 20:41:00

docker镜像与容器管理(二)的相关文章

Docker 镜像与容器管理(2)

title: Docker 镜像与容器管理(2) date: 2018-12-14 17:04:05 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.D

docker镜像与容器(二)

docker镜像与容器 docker改变了什么? 面向产品:产品交付 面向开发:简化环境配置 面向测试:多版本测试 面向运维:环境一致性 面向架构:自动化扩容(微服务) 获取镜像 可以使用 docker pull命令来从仓库获取所需要的镜像. [[email protected]~]# docker pull centos#获取一个centos的镜像 [[email protected]~]# docker images#查看docker的镜像 REPOSITORY          TAG  

docker镜像、容器管理

Docker优势 1) 更高效的利用系统资源 无论是应用执行速度.内存损耗或者文件存储速度,都要比传 统虚拟机技术更高效. 2)更快速的启动时间 Docker 容器应用,由于直接 运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级.甚至毫秒级的启 动时间. 3)一致的运行环境 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性 4)持续交付和部署 使用 Docker 可以通过定制应用镜像来实现持续集成.持续交付.部署. 二:为什么要使用Docker 不仅仅开发团队

docker技术剖析--镜像、容器管理

防伪码:博观而约取,厚积而薄发                                 docker技术剖析--镜像.容器管理 一.Docker简介 Docker是什么? Docker的英文本意是"搬运工",在程序员的世界里,Docker搬运的是集装箱(Container),集装箱里装的是任意类型的App,开发者通过Docker可以将App变成一种标准化的.可移植的.自管理的组件,可以在任何主流系统中开发.调试和运行. 说白了,docker是一种用了新颖方式实现的轻量级虚拟机,

docker一: 镜像与容器管理

Docker的优势: 1.启动非常快,秒级实现. 2.资源利用率高,在机器中以进程的方式存在,一台机器可以跑上百个docker容器. 3.创建和配置后可以在任意地方运行docker,只需将其上传到docker仓库,用到时拉下来就可以 4.易迁移,平台依赖性不强. Docker的主要概念: 1.镜像:只读模板,类似于安装系统用到的iso文件,对于镜像我们可以自定义,比如在一台机器上安装好lnmp环境,然后打包成为一个镜像,那么后期只需要从仓库中把这个镜像拉下来就可以直接使用lnmp环境了,非常方便

docker镜像、容器

第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角.例如一个ubuntu:14.04的镜像,提供了一个基本的ubuntu:14.04的发行版,当然此 镜像是不包含操作系统Linux内核的. 说到此,可能就需要注意一下,linux内核和ubuntu:14.04Docker镜像的区别了.传统虚拟机安装ubuntu:14.04会包含两部分,第一,某一个L

Docker背后的容器管理——Libcontainer深度解析

Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcontainer创建容器,并对容器进行生命周期管理. 容器是一个可管理的执行环境,与主机系统共享内核,可与系统中的其他容器进行隔离. 在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎.把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系.随着Docker的不断发

docker镜像与容器的联系、存储驱动

2.1 docker镜像与容器的联系.存储驱动什么是镜像?简单说,docker镜像是一个不包含Linux内核而又精简的Linux操作系统.镜像从哪里来?Docker hub是由docker公司负责维护的公共注册中心,包含了大量的容器镜像,docker工具默认从这个公共镜像库下载镜像:https://hub.docker.com/explore默认是国外的源,下载会慢,建议配置国内镜像仓库:[[email protected] ~]# vim /etc/docker/daemon.json{"re

Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效

原文:Linux下正确修改Docker镜像和容器的默认存储位置,亲测有效 我们通过 yum 的方式安装完Docker环境后,它默认的存储位置是 /var/lib/docker,默认的 pid 存放位置是 /var/run/docker.pid. 如果仅仅是做测试,我们可能没有必要修改,但是当大量使用docker镜像的时候,我们可能就要默认存储的位置了. 具体操作方法如下: 1.停止docker: service docker stop 2.修改docker服务的service文件: vim /u