docker底层原理
docker是怎么工作的?
Docker是一个C/S结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器,容器,是一个运行时主机,就是我们前面说到的集装箱。
为什么Docker比VM比较快
Docker常用命令
帮助命令
-
docker version
-
docker info
-
docker --help
镜像命令
-
docker images 列出本地主机上的镜像
-
-a 列出本地所有的镜像(含中间映像层)
-
-q 只显示镜像ID
-
-digests: 显示镜像的摘要信息、
-
-no-trunc:显示完整的镜像信息
-
-
-
docker search 某个镜像的名字 去https://hub.docker.com 去搜索镜像
-
--no-trunc 显示完整的镜像描述
-
-s 列出收藏数不小于指定值的镜像
-
--automated只列出automated build类型的镜像
-
-
docker pull 某个镜像的名字 下载镜像
-
docker pull 镜像名字[:TAG]
如果镜像名字后面不加标签,表明就是最新版本
-
-
docker rmi 镜像名字ID 删除进行
-
删除单个 docker rmi -f 镜像ID
-
删除多个 docker rmi -f 镜像名1:TAG 镜像名2:TAG
-
删除全部 docker rmi -f $(docker images -qa)
-
容器命令
有了镜像才能创建容器,这是根本前提
新建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
-
OPTIONS
-
--name="容器新名字":为容器指定一个名称
-
-d 后台运行容器,并返回容器ID 也即启动守护式容器
-
-i: 以交互模式运行容器,通常与-t同时使用
-
-t 为容器重新分配一个伪输入终端,通常与-i同时使用
-
-P 随机端口映射
-
-p: 指定端口映射,有以下四种格式
-
列出当前所有正在运行的容器 docker ps [OPTIONS]
-a 列出当前所有正在运行的容器+历史上运行过的
-l 显示最近创建的容器
-n 显示最近n个创建的容器
-q 静默模式,只显示容器的编号
--no-trunc 不截断输出
退出容器
-
两种退出方式
-
exit 容器停止退出
-
ctrl+P+Q 容器不停止退出
-
启动容器 docker start 容器名或者容器ID
重启容器 docker restart 容器名或者容器ID
停止容器 docker stop 容器名或者容器ID
强制停止容器 docker kill 容器名或者容器ID
删除已停止的容器 docker rm 容器iD
一次性删除多个容器
-
docker rm -f $(docker ps -a -q )
-
docker ps -a -q | xargs docker rm
重要
启动守护式容器 docker run -d 容器名
查看容器日志 docker logs -f -t --tail 容器ID
-
-t 是加入时间戳
-
-f 跟随最新的日志打印
-
--tail 数字 显示最后多少条
查看容器内运行的进程 docker top 容器ID
查看容器内部细节 docker inspect 容器ID
进入正在运行的容器并以命令行交互
-
docker exec -it 容器ID bashshell
-
重新进入docker attach 容器ID
-
上述两个区别:
-
attach 直接进入容器启动命令的终端,不会启动新的进程
-
exec 是在容器中打开新的终端,并且可以启动新的进程
-
从容器内拷贝文件到主机上
docker cp 容器ID :容器内路径 目的主机路径