Docker 概述及安装
安装Docker
帮助文档
了解:卸载docker
阿里云镜像加速
1.登录阿里云
2.找到镜像加速地址
3.配置使用
回顾 hello-world 流程
底层原理
docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问!
DockerServer接收到Docker-Client的指令,就会执行这个命令!
Docker为什么比VM快?
1.Docker有这比虚拟机更少的抽象层
2.Docker利用的是宿主机的内核。VM需要的是Guest OS
所以说,新建一个容器的时候,Docker不需要像虚拟机一样重新加载一个操作系统内核,避免一些引导性的操作,虚拟机是加载 Guest OS,分钟级别的 而Docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!
Docker的常用命令
帮助命令
帮助文档 https://docs.docker.com/engine/reference/commandline/
镜像命令
docker search 搜索镜像
docker pull 下载镜像
删除镜像
容器命令
说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
新建容器并启动
列出所有正在运行的容器
退出容器
删除容器
启动和停止容器的操作
常用其它命令
后台启动容器
查看日志
查看容器中进程信息ps
查看镜像的数据
进入当前正在运行的容器
从容器内拷贝文件到主机
小结
Docker 练习
Docker安装nginx
端口暴露的概念
思考问题:我们每次改动nginx都系要进入容器内部?十分麻烦,我们要是可以在容器外部提供一个映射路径,达到在容器修改文件名,容器内部就可以自动修改? -v 数据卷 !
Docker 安装Tomcat
思考问题:我们以后要部署项目,如果每次都要进入容器是不是十分麻烦?我们要是可以在容器外部提供一个映射在webapps,我们在外部放置项目,就自动同步到内部就好了
Docker 部署 es + kibana
作业:使用kibana连接es?思考网络如何才能连接过去?
Docker 可视化
- portainer(先用这个)
- Eancher (CI/CD再用)
什么是portainer?
docker的图形化界面管理工具!提供一个后台面板供我们安装
访问测试 http://ip:8088/
就可以通过它访问了
选择本地的
进入面板
Docker 镜像讲解
Docker 镜像是什么
镜像是一种轻量级,可执行的独立软件包,用来把、、打包软件运行环境开发的然健,它包含运行某个软件所需的搜哟内容包括代码,运行时、库、环境变量和配置文件。
所有的应用,直接打包docker镜像,就可以直接跑起来!
如何得到镜像:
- 从远程仓库下载
- 朋友拷贝给你
- 自己制作一个镜像DockerFile
如何提交一个自己的镜像
commit镜像
实战测试:
如果你想要的保存当前容器的状态,就可以通过commit来提交,获得一个镜像,就好比VM的快照
容器数据卷
什么是容器数据卷
docker理念回顾:
将应用和环境打包成一个镜像!
数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化
MySQL,容器删了,删库跑路!需求:MySQL数据可以存储在本地!
容器之间可以有一个数据共享的技术!Conker容器中产生的数据,同步到本地!
这就是卷技术,目录的挂载,将我们容器内的目录,挂载到Linux上面!
即双向绑定:测试文件的同步
再测试:
- 停止容器
- 宿主机上修改文件
- 启动容器
- 容器内的数据依旧是同步的
好处:我们以后修改只需要在本地修改即可,容器内会自动同步!
实战:安装MySQL
思考:MySQL的数据持久化问题!
此时就已经连接到容器内部MySQL
在本地测试创建一个数据库,查看一下我们映射的路径是否Ok
假设我们将容器删除
发现,我们挂载到本地的数据卷依旧没有丢失,这就实现了数据持久化功能
具名和匿名挂载
所有的docker 容器内的卷,没有指定目录的情况下都是在
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的
拓展:
初识DockerFile
DockerFile就是用来构建docker镜像的构建文件! 命令脚本!
通过这个脚本可以生成一个镜像,镜像是一层一层的,脚本一个个的命令,每个命令都是一层
这个卷和外部一定有一个同步的目录
查看一下卷挂载的路径
测试一下刚才的文件是否同步出去了
这种方式用得十分多,因为我们通常会构建自己的镜像!
假设构建镜像时候没有挂载卷,要手动镜像挂载 -v 卷名:容器内路径!
数据卷容器
多个mysql同步数据
写)参数
FROM centos
VOLUME [“volume01”,“volume02”]
CMD echo “—-end—-”
CMD /bin/bash
#这里的每个命令就是镜像的一层
这个卷和外部一定有一个同步的目录
查看一下卷挂载的路径
测试一下刚才的文件是否同步出去了
这种方式用得十分多,因为我们通常会构建自己的镜像!
假设构建镜像时候没有挂载卷,要手动镜像挂载 -v 卷名:容器内路径!
数据卷容器
多个mysql同步数据
多个MySql实现数据共享
结论:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。
但是一旦你持久化到了本地,这个时候,本地的数据是不会删除的
DockerFile
DockerFile介绍
dockerfile 是用来构建docker镜像的文件!命令参数脚本!
构建步骤:
1、编写一个dockerfile文件
2、docker build 构建成为一个镜像
3、docker run 运行镜像
4、docker push 发布镜像(DockerHub、阿里云镜像仓库)
查看一下官方文档是怎么做的
很多官方镜像都是基础包,很多功能都没有,我们通常会自己搭建自己的镜像!
官方既然可以制作镜像,那我们也可以!
DockerFile 构建过程
基础知识:
- 每个保留关键字(指令)都必须是大写字母
- 执行从上到下顺序执行
- #表示注释
- 每一个指令都会创建提交一个新的镜像层,并提交!
DockerFile是面向开发的,我们以后要发布项目,做镜像,就需要编写dockerfile文件
步骤:开发、部署、运维。。缺一不可!
- DockerFile:构建稳健,定义了一切的步骤,源代码
- DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品
- Docker容器:容器就是镜像运行起来提供服务器
DockerFile 指令
以前我们就是使用别人的,现在我们知道这些指令后,自己写一个镜像
DockerFile 实战测试
DockerHub 中99%镜像都是从这个基础镜像过来的FROM scratch ,然后配置需要的软件和配置来进行的构建
创建一个自己的centos
对比:之前原生的centos
我们增加之后的镜像
我们可以列出本地进行的变更历史
所以我们平时拿到一个镜像,可以研究它是怎么做的了
CMD 和ENTRYPOINT 区别
测试CMD:
测试 ENTRYPOINT
DockerFile 中很多命令都十分的相识,我们需要了解它们的区别!
实战:Tomcat镜像
-
准备镜像文件 tomcat 压缩包,jdk的压缩包
-
编写dockerfile文件,官方命名,build会自动寻找这个文件,就不需要 -f 指定了!
- 构建镜像
- 启动镜像
- 访问测试
- 发布项目(由于做了卷挂载,我们直接在本地编写项目就可以发布了!)
进入本地test目录中 mkdir WEB-INF
- 通过外网浏览器成功访问
发现:项目部署成功,可以直接访问ok!
以后得开发步骤:需要掌握Dockerfile的编写! 我们之后的一切都是使用docker镜像来发布运行
发布自己的镜像
DockerHub
- 首先注册自己的账号
- 确定账号可以登录
- 在服务器上提交自己的镜像
- 登录之后就可以提交镜像了,就是一步
提交的时候也是按照镜像的层级来进行提交的
发布到阿里云镜像服务上
- 登录阿里云
- 找到容器镜像服务
- 创建命名空间
- 创建容器镜像
- 浏览阿里云官方文档
Navicat for Premium 9.0.2激活
- 发布完成之后可以在镜像版本中查看
小结
Docker 网络
今天的文章
Navicat for Premium 9.0.2激活(Docker 概述及详细安装使用)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/116526.html