docker的基本了解:
Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何支持 Docker 的平台上。容器类似于虚拟机,但它们更轻量级、启动更快,因为它们共享宿主机的操作系统内核,而不是像传统虚拟机那样需要完整的操作系统。
docker流程分析:
0. 首先安装下载了docker的环境后就会在主机启动一个docker Host主机(会有一个docker dame线程去获取对应的docker主机信息)。并提供客户端(命令行)的docker-cli方式操作主机的docker请求。此外,docker官方维护一个应用市场,里面含有许多上传的镜像。可供下载:
1. 常规下载并运行docker应用市场的镜像:
先执行docker pull 镜像名方式在docker - cli执行命令,请求到dockerHOST会去应用市场加载并下载对应的镜像到主机的容器中。docker - run 即可运行容器
2. 要构建自己的容器镜像:docker build 镜像名,并推送 docker push 镜像名
容器理解:镜像运行起来的一个应用,使用虚拟化概念,提供隔离
传统操作系统级别的应用之间会相互影响,一个应用炸了,会影响其他应用的内存空间等
利用虚拟机隔离:轻量、跨平台、快速启动
Docker安装:可选择主机的linux虚拟机和腾讯云的安装:云服务器CVM:
Docker基本使用:多去官网了解:https://hub.docker.com/
镜像操作:
容器操作:
docker命令进阶:
docker run -d (后台启动) --name (起别名) name -p(端口映射) 主机port :容器的80
docker exec -it(以交互模式) name /bin/bash(以控制台方式进入容器)
docker commit -a 作者信息 -c 改变的列表 - m描述 - p 展厅容器暂停
docker save 镜像名 保存镜像为一个文件 - 0 指定文件类型
使用这个jar包:
docker load - i这个文件
docker build命令构建自己的镜像 :
- 登录: https://hub.docker.com/
- docker login
- 推送:
docker tag name new name
docker push 镜像名加版本标签
Docker存储:数据挂载: 在docker run时指定: -v 主机地址:内部主机位置
便于方便访问:且数据持久化存储
卷映射:在挂载时,把数据也挂载对应的容器内容对应的文件数据
主机存储的位置在:/var/lib/docker/volume/<命令中指定的卷名>
docler - volume可以进行管理卷映射 - ispect(查看卷的名称)
docke网络:轻松构建集群:
每个应用在启动时会加入docker0网络:也有自己的网络ip
所以应用之间访问可以直接使用彼此之间的内部的ip端口进行连接
缺点:在容器的重启,宕机后的ip地址会改变,docker0不支持主机域名方式连接
- 创建自定义网络:并让启动的容器加入到自定义的网络
docker network create name:
查看网络:docekr network ps
在正式使用:
docker run -d - p - v --name --network :
在访问时:curl http:.//容器名:内部端口port
以docker创建redis集群为例
整体架构图:
建议的redis镜像:只需要配置环境变量方式
docker的最佳实践
docker compose :批量管理容器:操作的文件:docekr compose
docker compose - f 文件名 up -d 全部上线 :down就是下线
docker compose start /shop
docker compose sacle 节点 =节点数(动态伸缩节点)
并且修改compose.yaml文件后序会进行增量更新(修改完在运行docker compose -f up)
\
dockerFile:编写镜像和对应允许环境和允许指令
常见命令: