目录
Docker
一:初识Docker
docker概念
Docker架构
二:Docker命令
Docker进程相关命令
Docker 镜像相关命令
Docker容器相关命令
三:Docker容器数据卷
Docker的数据卷
配置数据卷
eg:
数据卷容器
配置数据卷容器
eg:
数据卷小结
四:Docker应用部署
MySQL部署
Tomcat部署
五:Dockerfile
Docker镜像原理
镜像制作:
1.容器转化为镜像(了解即可)
Dockerfile案例-发布SprinBoot项目:
Dockerfile案例-自定义Centos:
六:Docker compose
服务编排
七:Docker私有仓库的使用
步骤演示:
(1) 创建一个私有仓库
(2)将镜像上传到私有仓库
(3) 从私有仓库中拉取镜像
八:Docker容器虚拟化与传统虚拟机比较
九:部署一个镜像容器的流程【实用 重要】
docker是一种容器技术,它解决了软件跨环境迁移的问题
eg:
删除镜像也可以使用命令:docker rmi REPOSITORY值:TAG值
镜像的id号即是IMAGE ID
eg:
数据卷即是宿主机中创建的目录,和容器是一个等级的。
分析思考的三个问题:
(1) Docker 容器删除之后,在容器中的数据就丢失了,但是我们可以使用数据卷进行保留一份容器中的数据,这样就等效于我们还有一份
容器的数据
(2) Docker容器不可以和外部机器进行交互,但是容器对应的其宿主机是可以和外部机器交互作用的:
(3) 容器之间需要进行数据交互?
多个容器之间可以进行数据交互,当多个容器进行挂载同一个数据卷的时候,就可以实现各个容器中的数据是互通的 !达成了数据交互
的情况 。那么一个容器修改数据,那么数据卷中的数据立即变化,那么另外一个挂载的容器中的数据也会随之变化,这就是容器之间的
数据交互情况 !
窗口1:
解释图中的文字:宿主机目录即是数据卷,和容器是一个等级的。容器内目录 即是进入容器后的文件目录
窗口2:
窗口1:
窗口2:
即使容器c1被删除 但是之前挂载在c1上的数据卷交互得到的数据依旧还是存在的 !
窗口1:
容器1:
窗口2:
窗口1:
验证上一张图的②:
1.数据卷概念:宿主机的一个目录或文件
2.数据卷作用:
使容器数据持久化不丢失
客户端和容器数据交换
容器之间数据交换
3.数据卷容器:
创建一个容器,挂载一个数据卷(即是宿主机的一个目录或文件),让其他容器继承该容器
通过简单方式实现数据卷配置
具体步骤见文档:docker应用部署
三个问题:
eg1:(了解即可)
eg2:(了解即可)
案例演示:
(1)
(2)
(3)
(4)
通过名称app 进行运行该项目,并且指定端口号映射,暴露给外界 供外界访问的端口号为9000
eg:
接下来进行自定义一个Centos:
(1) 创建文件目录 并且创建文件进行修改
(2) 进行创建自定义centos,名字为:leomessi_centos,id号为1 版本号默认为latest
步骤演示:
(1)
(2)
# 1、拉取私有仓库镜像 docker pull registry # 2、启动私有仓库容器 docker run -id --name=registry -p 5000:5000 registry # 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功 # 4、修改daemon.json vim /etc/docker/daemon.json
5."insecure-registries":["私有仓库服务器ip:5000"] 把这句话加入到配置文件中
6.
# 重启docker 服务 systemctl restart docker #重启私有仓库的镜像 docker start registry
# 1、标记镜像为私有仓库的镜像 docker tag centos:7 私有仓库服务器IP:5000/centos:7 # 2、上传标记的镜像 docker push 私有仓库服务器IP:5000/centos:7
1.搜索redis镜像
docker search redis
2.拉取redis镜像 如果不指定版本号 默认使用最新的版本号latest
docker pull redis:5.0
3.创建容器,设置端口映射 (一般都使用默认端口号 映射的适合其实就是互相映射默认的端口号即可)
docker run -id --name=c_redis -p 6379:6379 redis:5.0
4.使用外部机器连接redis
5.但是过了一段时间之后,该镜像对应的容器自动停止了 这时候该怎么办?
第一步:查看redis对应容器的名称
第二步:利用容器的名称进行启动对应的容器
docker start c_redis
连接成功: