Docker 安装
Docker 架构图
? 需要正确的理解仓储/镜像/容器这几个概念: Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境,这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件,可以生成多个同时运行的容器实例。
测试
Docker 底层原理
1、docker 有着比虚拟机更少的抽象层。由于 docker 不需要 Hypervisor 实现硬件资源虚拟化,运行在 docker 容器上的程序直接使用的都是实际物理机的硬件资源。因此在 CPU、内存利用率上 docker 将会在效率上有明显优势。
2、docker 利用的是宿主机的内核,而不需要 Guest OS。因此,当新建一个容器时, docker 不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载 Guest OS ,返个新建过程是分钟级别的。而 docker 由于直接利用宿主机的操作系统,则省略了返个过程,因此新建一个 docker 容器只需要几秒钟。

Docker常用命令
docker images 镜像命令
- docker images:列出本地主机上的镜像
- -a :列出本地所有的镜像(含中间映像层)
- -q :只显示镜像ID
- –digests :显示镜像的摘要信
- –no-trunc :显示完整的镜像信息
- docker search [OPTIONS] 镜像名字:在 资源仓库上搜索对应的镜像
- docker pull [OPTIONS] 镜像名字:拉取镜像
- docker rmi -f 镜像ID:删除单个镜像
- docker rmi -f 镜像名1:TAG 镜像名2:TAG :删除多个镜像
- docker rmi -f $(docker images -qa):删除全部镜像
- docker images -f [condition] :根据条件查询本地镜像
- docker images -f=reference=‘abc*’:查询以abc为开头的镜像
- docker update -restart=always [容器ID]
docker run [OPTIONS]
新建并启动一个容器
- –name=“容器新名字”: 为容器指定一个名称;
- -d:后台运行容器,并返回容器ID,也即启动守护式容器;
docker run -d centos 会启动一个 centos 的容器,但是会立刻结束
很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的
- -i:以交互模式运行容器,通常与 -t 同时使用;
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -P: 随机端口映射;
- -p:指定端口映射 ,有四种配置方式
- ip::containerPort
- ip:hostPort:containerPort
- hostPort:containerPort
- containerPort
docker ps [OPTIONS]
列出当前所有正在运行的容器
- -a :列出当前所有正在运行的容器+历史上运行过的
- -l :显示最近创建的容器。
- -n:显示最近n个创建的容器。
- -q :静默模式,只显示容器编 。
- –no-trunc :不截断输出。
docker start [containerID/containerName]
根据容器ID或名称启动指定容器
docker restart [containerID/containerName]
根据容器ID或名称重启指定容器
docker stop/kill [containerID/containerName]
根据容器ID或名称(stop)关闭容器(kill)强制关闭
docker rm [containerID]
删除已经关闭的容器
docker rm -f $(docker ps -a -q):一次性删除全部容器
docker logs -f -t –tail [containerID]
查看容器日志
- -t:加入时间戳
- -f:跟随最新的日志打印
- –tail 数字:显示最后多少条
docker top [containerID]
查看容器内运行的进程
查询容器内部细节,可以通过该命令查看容器配置,数据卷挂载等重要信息
docker exec -it [containerID] bashShell
进入正在运行的容器并以命令行交互
docker cp [containerID] :容器内路径 目的主机路径
将容器中文件拷贝至宿主机上
Docker 容器数据卷
Docker 容器产生的数据,如果不通过 docker commit 生成新的镜像,使得数据做为镜像的一部分保存下来,
那么当容器删除后,数据自然也就没有了为了能保存数据在docker中我们使用卷,主要作用有三个:容器的持久化,容器继承数据,容器共享数据
如何使用
查看容器是否挂载成功
通过 DockerFile 挂载数据卷
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!