一、docker概述
1.为什么要提出docker?
将一个应用项目上线时,需要在服务器配置复杂的环境,过于费时费力,以及在同一台服务器上部署不同的应用,可能产生冲突。
2.传统与现在应用部署的不同?
a.传统:开发人员开发代码包,直接交给运维人员,再由运维人员部署运行环境,应用上线
b.现在:开发打包部署上线,一套流程完成
3.docker的优势?
a.docker将多个应用通过容器隔离起来,放在同一个服务器上运行,可以避免不同应用部署在同一台服务器上而产生的冲突问题
b.docker也可以利用隔离机制将服务器的资源利用到极致
4.docker的相关网站?
a.官网
b.官方文档
c.镜像仓库
二、容器化和虚拟化技术介绍
a.虚拟化技术
下载系统的原生镜像文件,一般都是几个G大小,然后安装在VM中,十分笨拙
b.容器化技术
通过docker镜像仓库,或者阿里云镜像仓库下载镜像(一般就几M,或者几百M),在通过镜像创建容器,容器之间彼此隔离,使用起来小巧方便
c.两种技术优缺点对比
虚拟化技术:可以较好且完整的模拟出一台计算机,但其占宿主主机的资源较多,安装部署步骤多,操作麻烦,启动慢
容器化技术:其不是模拟出一个完整的操作系统,容器内的应用是直接运行在宿主主机上,容器并没有自己的内核,也没有虚拟自己的硬件。每个容器之间都是相互隔离的,都有自己的文件系统,互不影响
三、docker的作用
a.应用更快速的交付和部署
docker打包镜像发布测试,一键运行
b.更快捷的升级和扩缩容
c.更简单的系统运维
d.更高效的利用计算机资源
可以在一台物理机上运行多个容器实例,从而保证充分利用服务器的资源,把性能压缩到极致
四、docker安装
地址:https://blog.csdn.net/qq_44316726/article/details/108557361
五、run的运行流程和底层原理
1.当我们使用docker run命令创建一个容器时,其运行流程如下
a.docker会在本机上搜索镜像,判断其是否存在
b.若在本机上找到该镜像,就使用该镜像创建容器。否则,进行下一步
c.去docker Hub官网下载镜像,若找到了该镜像就下载到本地,并使用其创建容器。若没有找到该镜像,就返回错误
2.底层原理
docker是一个Client-Server结构的系统,docker的守护进程运行在主机上,使用者通过Socket从客户端访问该进程。docker-Server在接收到docker-Client的指令后,会执行该指令
六、docker的常用命令
a.帮助命令
docker version #显示docker的版本信息
docker info #显示详细的系统详细,包括镜像和容器的数量
docker 命令 –help #显示该命令的详细信息,以及使用方法
b.镜像命令
查看镜像:
docker images #查看本地主机上的镜像
#参数介绍 -a 列出所有镜像 -q 只显示镜像的id
搜素镜像
docker search 镜像名
#参数介绍 –f 过滤选项
实例:docker search –filter=SIZE=5000 mysql
下载镜像
docker pull 镜像名 #默认下载最新版本的镜像
docker pull 镜像名:版本号 #下载指定版本
删除镜像
docker rmi -f 镜像id #删除一个镜像
docker rmi -f 镜像id 镜像id #删除多个镜像
docker rmi -f $(docker image -aq) #删除所有本地的镜像
c.容器命令
注意:我们只有有了镜像,才可以常见容器
新建并启动容器
docker run [选项] 镜像名
#选项解释
–name=’centos01′ #指定容器的名称,用于区分同一镜像创建的不同容器
-d #后台运行
-it #交互式运行,并进入容器查看内容
-p #指定容器的端口
-p ip:主机端口:容器端口
-p 主机端口:容器端口
-p 容器端口
容器端口
-P #随机指定端口
列出运行的容器
docker ps [选项] #列出正在运行的容器
选项解释
-a #列出正在运行的容器+历史上运行的容器
-n=数字 #列出最近的进程容器
-q #只显示容器的编号
退出容器
exit #退出并停止容器
Ctrl+q+p #退出不停止容器
删除容器
docker rm 容器id #删除指定容器,但不可以删除正在运行中的容器
docker rm -f 容器id #可以删除正在运行中的容器
docker rm -f $(docker ps -aq) #删除所有容器
启动停止容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id #强制停止容器
七、docker的高级命令
a.查看日志
docker logs –tf –tail 日志显示条数 容器id
b.查看容器中的进程数
docker top 容器id
c.查看镜像的元数据
docker inspect 容器id
d.进入后台运行
docker exec -it 容器id /bin/bash #进入容器后,会开启新的终端,在里面操作
docker attach 容器id #进入容器后,不会开启新的终端,直接使用正在运行的终端
e.将容器中的文件拷贝的物理主机上
docker cp 容器id:容器内路径 物理主机的目标路径
来源:freebuf.com 2021-03-20 18:27:44 by: hu666666
请登录后发表评论
注册