第一天 docker快速入门+docker基础(上)
1.创建linux环境:
Linux环境搭建 - 飞书云文档 按照这篇创建完成

2.创建docker环境
1.已解决:Cannot find a valid baseurl for repo: base/7/x86_64-优快云博客
初步推测是因为centos官方源我访问不到要换成aliyun baseurl 更换后yum-utils如下


看起来没有那么难 真有报错那也一次一次地尝试总能好 总要完成的东西能试的方法一定要都试试

配置镜像加速 因为docker要下很多东西 结果如下:
并重载daemon和restart docker进程
更改docker daemon.json中的配置 安装部署虚拟机mysql后 本地跨ip连接成功

docker相当于把压缩包或者msi 安装后生成的全量依赖 给下载到虚拟机上了 所以docker 叫“开箱即用” 这也就是docker镜像

2.隔离的容器 指的屏蔽底层差异 部署产生的过程中 在docker套公式就能部署很多 底层差异被docker消除 无需在意 docker ps可以查看进程



3.docker 命令多个参数含义

关于-e参数的话 每个应用创造的实例镜像需要初始化的参数不一样 所以别的app有可能 -e是别的键值对 这里端口映射理解成“容易有各自的假ip fakeip1:3306,fakeip2:3306 ....... 这些同时映射到了docker执行机 为了让操作docker时端口不冲突ip1,.....ipn映射了n个端口 操作这n个执行机端口来操作这n个容器同一种镜像服务
4.docker基础命令

docker命令理解记忆图如上图 docker run 重新创建容器并启动配置线程 docker start才是启动进程 所以恢复功能而非多进程 要用docker start

4.1命令1

因为每个容器存放着独立进程 因此想查容器(进程用docker ps) 同样的如果进程被stop了 那进程消失 对应的容器直接ps也查不到了 就要ps- a 查看所有停止和运行的容器

docker logs 前面起的容器名字 -f为阻塞式查询

进入容器那台虚拟机
docker rm 删容器 docker rmi 删镜像 运行中的进程 对应的容器 只能xxx -f强制删除
4.2 命令别名 这点和cadence 很像 向cshrc环境里变量面写入别名使他执行更复杂的命令 如果不加这个,就会相当于执行某个陌生命令 cadence写过很多遍了 这个跳过
5.挂载
5.1数据卷挂载
由于docker 为了节省性能且适配较多应用 容器内部功能很少此时想要更改容器运行参数 就要调整公共的宿主机参数 来映射容器参数 更改容器进程运行状态

第二天 docker基础下


1.如上图修改了 数据卷 发现进程的配置自动被修改了 因为挂在是同一物理内存空间对应的不同逻辑空间
2,docker volume inspect 查看数据卷详情
docker inspect 查看容器详情

msql docker运行时没有指定挂载位置 可以这样docker ps -a 查看容器名字 然后docker inspect name 即可查看挂载情况 一般来说没-v指定会产生匿名卷

同样的方式可以实现宿主机目录与容器目录的挂载
3.mobaxtrem 勾选① 可以实时展示当前目录结构

4。这里目录映射 地run了多个mysql 这样的话可以看出来 虚拟机对于容器的文件或者数据卷映射可以是一对一 也可以是一对多

5.指定目录挂载是为了数据在虚拟机持久保存 否则容易找不到
关于部署具体mysql命令:
docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ -v ./mysql/data:/var/lib/mysql \ -v ./mysql/conf:/etc/mysql/conf.d \ -v ./mysql/init:/docker-entrypoint-initdb.d \ mysql
关于 端口占用而错误生成了 不想要的容器清空他们要用到
Docker 停止及删除容器和镜像(单个和所有)-优快云博客所说的
6部署一个java应用通常需要下述四步

镜像形成中每一步都会产生的依赖会产生压缩包 这么多压缩包集成在一起就变成了镜像

7 那么批量化引入依赖 实现环境配置 并以docker方式构建出当前环境可运行镜像的就是dockerfile :
Dockerfile 的工作方式本质上就是“按步骤执行指令”,和批处理文件(如 .sh/.bat)的逻辑高度相似:
每一行指令(FROM/RUN/COPY/CMD...)都会被 Docker 引擎按顺序解析并执行,最终生成一个包含所有依赖和配置的镜像。
这个过程和写一个“安装依赖→复制文件→启动服务”的批处理脚本(比如 install.sh)完全一样,只是 Dockerfile 的产物(镜像)是标准化的、可移植的运行环境,而批处理脚本的产物通常是本地环境的临时修改

8.
自定义的镜像如果带版本号 不要运行不带版本号的容器
9.


这里我们可以看到自定义docker 是可以ping到mysql 也就是说二者拥有相同网关的情况下 dns一旦重新给二者分配ip就会导致二者ip可能与部分config冲突导致网络问题
因此需要引入自定义网络的概念
10 docker network 命令如下

11.总结来说docker基础知识 就是 镜像--启动-->容器 网络
第三天部署
1.
结尾说明:由于本人某9混子毕业 在某血汗公司搞软硬结合 常态化加班被拷打幡然醒悟 后续每天晚上下班后都会学习 spirngboot/cloud/AI 等知识 每天都会更新下一个问题或者理解作为笔记
1416

被折叠的 条评论
为什么被折叠?



