Docker为什莫方便(学习的记录)
程序 — apk— 发布到商城------下载安装即可使用
程序----打包项目带上环境(创建一个项目的镜像)-----发布到docker仓库当中------下载安装运行即可
🌕 docker的核心思想
将各个环境进行隔离,打包成箱
🌕 安装Docker
环境准备
1.需要会一点点linux基础
2.Centos7操作系统
3.Xshell进行远程连接
Docker的底层原理
🌕 Docker是怎末工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!
DockerServer收到Docker-Client的指令,就会执行这个命令!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6JuH7U9-1673834131017)(.\image-20230113170532810.png)]](https://img-blog.csdnimg.cn/c4bb7b35c40d4c06b419d41cfa9a43bd.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHka0iEi-1673834131023)(.\image-20230112120127110.png)]](https://img-blog.csdnimg.cn/4dd3e9cca28a485c9bf8a961ab1c314e.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Il1gASsy-1673834131024)(.\image-20230112163645793.png)]](https://img-blog.csdnimg.cn/c63d7a5422414a429dae02c0b0e5b622.png)
🌕 Docker为什莫比vm虚拟机快
1.Docker有着比虚拟机更少的抽象层
2.Docker利用的是宿主机的内核,vm需要是操作系统。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ls5Skaaq-1673834131025)(.\91868a37481f41dbc2b53a2303ce8fff.png)]](https://img-blog.csdnimg.cn/a1e77135d1de4168a348129ed3f19ed2.png)

所以说,新装一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导式的安装镜像,虚拟机时加载操作系统的,分钟级别的,而docker是利用宿主机的操作系统进行的,省略了重新加载操作系统的复杂过程,秒级的
🌕 端口暴露的概念
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tHyzt0Rq-1673834131026)(.\image-20230112164103325.png)]](https://img-blog.csdnimg.cn/6e12d5bca73a4b0b9d9e2b4ec0f3be2e.png)
Docker常用命令
🌕 帮助命令
docker version 查看docker版本信息
docker info 显示docker的系统信息,包括镜像和容器的数量
docker 命令 --help 帮助命令
帮助文档地址:https://docs.docker.com/engine/reference/run/
🌕 镜像命令
docker images 查看所有的镜像信息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PLau5OHQ-1673834131027)(.\image-20230112131054050.png)]](https://img-blog.csdnimg.cn/8f85e21996f34d69b9bcd7f971c51289.png)
## 解释
respository 镜像仓库
tag 镜像标签
image id 镜像id
created 镜像的创建时间
size 镜像的大小
## 可选项
-a,--all 列出所有镜像
-q,--quiet 只显示镜像
docker search 搜索镜像
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kW2WHwz3-1673834131028)(.\image-20230112132200731.png)]](https://img-blog.csdnimg.cn/110d3edefb4548bebd739bfe50effefc.png)
##可选项,通过搜索来进行过滤
--filter=STARS=80
搜索出80以上的stars
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JhnNoVcj-1673834131028)(.\image-20230112134404555.png)]](https://img-blog.csdnimg.cn/c9d65a6a6cee46bab5369bd48efdf67c.png)
docker pull 拉取镜像/下载镜像
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AI36Y2b5-1673834131029)(.\image-20230112134645481.png)]](https://img-blog.csdnimg.cn/afe19355f4ca4c89a742a91ca45a08f5.png)
docker remove删除镜像
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SlPBkHcX-1673834131030)(.\image-20230112135137122.png)]](https://img-blog.csdnimg.cn/2c8e1a7f072b46e8bb8c2cc3e06b6301.png)
🌕 容器命令
说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
docker pull centos
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RzL4Dx8P-1673834131031)(.\image-20230112140208901.png)]](https://img-blog.csdnimg.cn/512e92d73a7e4063802e617a337511f8.png)
列出当前正在运行的容器
docker ps
#列出当前正在运行的容器
docker ps -a
#列出当前正在运行的容器+运行过的容器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cS32A5zE-1673834131031)(.\image-20230112140437345.png)]](https://img-blog.csdnimg.cn/e17d2c56f13f48ed8f5bdc98e51f7375.png)
退出容器
exit #直接容器停止并退出
Ctrl+p+q #容器不停止退出
删除容器
docker rm 容器id #删除指定的容器
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器
启动和停止容器的操作
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id
🌕 常用其它命令
后台启动容器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SF72Sr8O-1673834131032)(.\image-20230112143439827.png)]](https://img-blog.csdnimg.cn/06e85bb3ced345a9bd178389042620d4.png)
查看日志
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BC0A1RWT-1673834131033)(.\image-20230112145556194.png)]](https://img-blog.csdnimg.cn/6fa4a94da634417d9fcced3ca3dc01fb.png)
查看容器中进程信息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aMoFQsY4-1673834131033)(.\image-20230112145838746.png)]](https://img-blog.csdnimg.cn/2670eade83714b22917fad387dcee72e.png)
查看镜像原数据
docker inspect 容器id
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xSkvnT64-1673834131034)(.\12.png)]](https://img-blog.csdnimg.cn/bf06e1c5d74b42e2ad6b8baab231f893.png)
进入当前正在运行的容器
我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置
#命令
docker exec -it 容器id bashshell
#测试
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-raBRg7kG-1673834131035)(.\image-20230112150729152.png)]](https://img-blog.csdnimg.cn/490f3ec2e6e3421c925cb121d54f2b46.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FtzywiuK-1673834131035)(.\image-20230112151015672.png)]](https://img-blog.csdnimg.cn/a7686f212e66460c974bc125f8752892.png)
从容器内拷贝文件到主机上
docker cp 容器id:容器内路径 目的的主机路径
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9ierocjy-1673834131036)(.\image-20230112151722378.png)]](https://img-blog.csdnimg.cn/57265796270447c3bc4d36a1cb1faa34.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-niwP8wTY-1673834131036)(.\image-20230112151812679.png)]](https://img-blog.csdnimg.cn/459178391d4940c388af33d4838556e1.png)
🌕 所有命令图片

Docker可视化
portainer(先用这个)
docker run -d -p 8088:9000 \ --restart=always -v /var/run/docker.sock --privileged=ture portainer/portainer
Rancher(CI/CD再用)
神魔是portainer
Docker图形化界面管理工具!提供一个后台面板供我们操作!
docker run -d -p 8088:9000 \ --restart=always -v /var/run/docker.sock --privileged=ture portainer/portainer
访问测试:http://ip:8088 (首先要把端口进行开放)
练习
🌕 Docker 安装Nginx
1、搜索镜像 search 建议大家去docker搜索,可以看到帮助文档
2、下载镜像 pull
3、运行测试
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eM6NeH17-1673834131038)(.\image-20230112164253739.png)]](https://img-blog.csdnimg.cn/6780718915f6424aaa6c29bce2a1f709.png)
思考问题:我们每次改动nginx配置文件,都需要进入容器内部?十分的麻烦,我要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改?-v 数据卷!
🌕 Docker来安装一个tomcat
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S20GejwT-1673834131039)(C:\Users\一个馬\AppData\Roaming\Typora\typora-user-images\image-20230112170940438.png)]](https://img-blog.csdnimg.cn/629c3d9761784b70a3b6bbee284bd64b.png)
🌕 部署es+kibana
容器数据卷
什么是容器数据卷
docker的理念回顾
如果将应用和环境打包成一个镜像的话,数据存储在容器当中,当我们删除容器的时,数据也会丢失,这个时候我们就要进行数据可持续化
**解决思路:**进行各个容器的数据共享(就是将linux里的容器数据同步到linux指定的目录下)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XTJJb0gv-1673834131039)(.\image-20230113131454750.png)]](https://img-blog.csdnimg.cn/bfc814db424f40ee8346a4403c80d838.png)
总结一句话:容器的持久化和同步操作!容器间也是可以数据共享的。
使用数据卷
方式一:直接使用命令来挂载。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-70XWLBIp-1673834131040)(.\image-20230113132349790.png)]](https://img-blog.csdnimg.cn/bc846864b1ca4b5abc597690797fad6d.png)
实战:安装mysql
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WFnKUup9-1673834131042)(.\image-20230113134240396.png)]](https://img-blog.csdnimg.cn/575d53e06af84dc88cda833edba0a9b0.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wmbBIY5S-1673834131042)(.\image-20230113134324457.png)]](https://img-blog.csdnimg.cn/1f850e89eabd44e59e65e49fd742c425.png)
具名和匿名挂载
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T28d8WJf-1673834131043)(.\image-20230113140636051.png)]](https://img-blog.csdnimg.cn/1541c335e23e46699c9ed90cf4a40660.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w76qCJ5g-1673834131043)(.\image-20230113141027953.png)]](https://img-blog.csdnimg.cn/92a3f3b418564c8eab9708b2b9424ad6.png)
初识DockerFile
Dockerfile就是用来构建docker镜像的构建文件!命令脚本!
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KhJOwI8A-1673834131044)(.\image-20230113144906196.png)]](https://img-blog.csdnimg.cn/89c42144b390473e88234c19326168ea.png)



















