工作需要学习docker特此记录
学习视频和学习顺序皆来自于B站up主遇见狂神说,只为做学习笔记
up主个人主页:https://space.bilibili.com/95256449/video 记得三连up主
docker安装教程:https://www.bilibili.com/video/BV1og4y1q7M4?p=6(别忘了给up主三连)
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
传统虚拟机缺点:
1、占用资源多
2、启动慢
3、冗余步骤多
容器和传统虚拟机不同的地方:
1、传统虚拟机,虚拟出一条硬件、运行一个完整的操作系统,然后再新的操作系统上安装和运行文件。
2、容器内的应用直接运行在宿主机上,容器没有自己的内核
3、每个容器之间相互隔离,互不影响。
优势:
1、应用更快速的交付和部署
2、更便捷的升级和扩展
3、更简单的系统运维
4、更高效的计算机资源利用
(建议读者了解一下docker的历史)
镜像(image):
docker镜像类似于一个模版,可以通过模板创建容器服务。
容器(container)
docker利用容器技术,独立运行一个或者一组应用
可以理解为运行镜像程序的地方
仓库(repository)
仓库是集中存放镜像的地方
docker是一个c/s结构的系统,Docker的守护进程运行在主机上,同个client客户端访问,server服务器执行这个指令。
docker为什么比vm快?
1、docker比vm拥有更少的抽象层
2、docker利用的是宿主机内核,vm需要Guest OS
所以说新建容器的时候,docker不需要重新家在操作系统内核。虚拟机是加载Guest OS,属于分钟级别,docker是利用宿主机操作系统,属于秒级!
docker 命令 --help //查看命令信息
docker version //查看docker的版本信息
docker info //查看docker信息,包括镜像和容器数量
1、docker image 查看所有本地的主机上的镜像
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的ID
VREATED 镜像的创建时间
SIZE 镜像的大小
#可选项
-a,–all | 列出所有镜像 |
---|---|
-q,–quiet | 只显示镜像的id |
-f,--filter=stares=3000 //搜索出stars大于3000的镜像
格式化选项(–format)
占位符 | 描述 |
---|---|
.Name | 镜像名称 |
.Description | 镜像说明 |
.StarCount | 镜像表述 |
.IsOfficial | 镜像标示 |
.IsAutomated | 是否为自己构建 |
1、docker pull 镜像下载命令
docker pull 镜像名称下载镜像
2、新建容器并启动
docker run[可选参数] imagename
**3、列出所有运行的容器docker ps **
4、退出容器
exit //直接容器停止并退出
Ctrl + P + Q //容器不停止退出
5、删除容器
docker rm 容器id //删除置顶容器,不能删除正在运行的容器 如果要强制删除-f
docker rm -f $(docker ps -aq) //删除所有的容器
docker ps -a -q|xargs docker rm //删除所有的容器
6、启动和停止容器的操作
docker start 容器id //启动容器
docker restart 容器id //重启容器
docker stop 容器id //停止当前正在运行的容器
docker kill 容器id //强制停止当前容器
1、docker run -d 镜像名 在后台启动容器
有一个坑:docker容器在后台运行必须要有一个前台进程,如果docker发现没有就立刻停止
2、docker logs -tf --tail number 查看日志
3、docker top 容器id 查看容器中的进程信息
4、查看镜像的元数据
docker inspect 容器id
5、进入当前正在运行的容器
方法一:
方法二:
docker exec //进入容器后开启一个新的终端,可以在里面操作
docker attach //进入容器正在执行的终端,不会启动新的进程