当前位置:网站首页 > 软件测试基础 > 正文

docker训练模型(docker基础教程)



安装Docker需要的依赖gcc gcc-c++

 
  

因为我之前已经安装了,所以现在提示"Nothing to do"

 
  

非root用户需要使用sudo提权

 
  

安装Docker

 
  

查看docker版本

 
  
 
  

运行hello-world

 
  
 
  

为什么Docker会比vm虚拟机快

 
  
 
  

docker images

 
  
 
  

docker search

docker search 镜像名称

 
  
 
  

docker pull

下载镜像

 
  

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述




docker system df

docker rmi

删除镜像

 
  

在这里插入图片描述

docker rm

 
  

在这里插入图片描述

 
  

redis前台交互式启动

前台启动很容易被意外终止,窗口一关就没了

 
  

在这里插入图片描述
在这里插入图片描述

redis后台守护进程启动

 
  

在这里插入图片描述
查看容器内运行的进程
在这里插入图片描述




Nginx容器运行

在这里插入图片描述
保存拉取好的nginx镜像
在这里插入图片描述
删除nginx镜像,通过上一步保存好的nginx.tar包再将nginx加载回来
在这里插入图片描述
在这里插入图片描述
创建nginx容器
















 
  
 
  

在这里插入图片描述

 
  

停掉nginx容器

 
  

在这里插入图片描述
在这里插入图片描述
启动nginx容器




 
  

在这里插入图片描述
在这里插入图片描述
查看nginx日志




 
  

进入nginx容器内部

 
  

在这里插入图片描述

ubuntu交互式运行

 
  

tomcat交互式运行

 
  

当运行完以上命令后,以下为截取的部分tomcat启动运行日志,可以看到tomcat启动成功了。

 
  

对外暴露访问端口

专用术语称之为端口映射,将宿主机的8080端口映射为8081,也就是对外我们访问8081端口就等于访问宿主机的8080端口。

 
  
 
  
 
  

在这里插入图片描述

Dockerfile 是用于构建 Docker 镜像的脚本文件,由一系列指令构成。通过 docker build命令构建镜像时,Dockerfile 中的指令会由上而下依次执行,每条指令都将会构建出一个镜像,这就是镜像的分层。因此指令越多,层次就越多,创建的镜像就越多,效率就越低。所以在定义 Dockerfile 时,能用一个指令完成的动作就不要分为两条。

 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  

为了实现同一个宿主机以及跨宿主机的容器之间网络互联,Docker网络支持5种网络模式

 
  

查看Docker默认的网络模式有三个

 
  

在这里插入图片描述

默认新建的容器使用Bridge模式,创建容器时,docker run命令使用以下选项指定网络模式格式

 
  
 
  

在这里插入图片描述

 
  
 
  

查看bridge模式信息

 
  
 
  
 
  

发布一个Java的hello world

 
  
 
  

运行镜像,对外暴露9003端口

 
  

在这里插入图片描述
进入到容器里面查看
在这里插入图片描述
查看容器日志
在这里插入图片描述
浏览器访问我暴露出的9003端口
在这里插入图片描述
ok,java的hello world的小应用程序就以docker容器的方式运行成功了。



















 
  

在这里插入图片描述
在这里插入图片描述

为了保证数据的安全性,在生产环境下安装的 mysql 容器,在启动时都会使用数据卷来持久化数据。

 
  

在这里插入图片描述

安装master容器

第一步:启动master容器,指定数据卷路径

 
  

第二步: 新建 my.cnf

 
  

第三部:创建用户

 
  

第四步:给用户赋予权限

 
  

第五步:查看该用户权限

 
  

安装slave容器

第一步:启动slave容器,指定数据卷路径

 
  

第二步:新建my.cnf

 
  

第三部:进入容器连接mysql

 
  

配置主从复制

1.查看master状态

 
  

2.slave 指定 master
在 slave 中通过运行 change master to 命令来指定其要连接的 master 相关信息。

 
  
 
  

3.开启slave

 
  

在这里插入图片描述
此时master和slave已经完成了主从复制,在master上新建一个数据库和数据表已经即时同步到slave上了。

 
  

在这里插入图片描述
在这里插入图片描述

单机安装Redis

 
  

在这里插入图片描述
在这里插入图片描述
进入redis容器
在这里插入图片描述







Redis一主两从集群搭建

现要搭建一个“一主两从”的 Redis 集群。这三个容器的端口号都保持默认,但对外暴露出的端口号分别为 6381、6382、6383。其中,6381 的为 master,另外两个为 slave。

1.复制三份 redis.conf
在两个slave的redis.conf上加上两个如下配置

 
  

在这里插入图片描述
在这里插入图片描述

2.启动master容器

 
  

在这里插入图片描述

启动slave容器
myredis-2

 
  

在这里插入图片描述
myredis-3

 
  

在这里插入图片描述
查看主从关系
master节点上
在这里插入图片描述
slave节点上
在这里插入图片描述
验证主从是否同步,在master上set一个值之后,两个slave节点可以直接get到
在这里插入图片描述



















Redis 高可用集群搭建

主从集群存在的问题是,其容灾方式只能采用冷处理方案,无法在生产中使用。所以这里要搭建一个“一主两从三哨兵”的高可用集群,以达到热处理的容灾方案。

1.复制三份 sentinel.conf
复制 sentinel.conf 文件并重命名为 sentinel1.conf。
仅修改两处:




 
  

2.启动 sentinel
2.1启动mysentinel-1

 
  

在这里插入图片描述
2.2启动mysentinel-2

 
  

在这里插入图片描述

2.3启动mysentinel-3

 
  

在这里插入图片描述
关系查看
在这里插入图片描述
以上命令的查看结果说明 sentinel 对 master 的监视成功,说明高可用集群搭建成功。连
接任何一个 sentinel 容器节点查看到的信息与上面的都是相同的。
在这里插入图片描述













故障转移测试

为了验证高可用性,现将充当 master 的容器 myredis-1 停掉。

在这里插入图片描述
此时再次启动myredis-1时,发现它成了myredis-3的slave节点
在这里插入图片描述
在这里插入图片描述







Docker Compose是Docker一个用于定义和管理多容器的容器编排工具
。通过使用Docker Compose,可以在单个YAML文件中配置应用的服务、网络和卷等,简化了多容器应用的部署和管理。解决了手动部署容器的弊端。

安装Docker compose

 
  

在这里插入图片描述
赋予docker-compose执行权限
在这里插入图片描述




 
  

在这里插入图片描述
2.运行镜像
因为本java项目需要mysql和redis环境,所以我们最先运行了mysql和redis容器,此时我们先后手动启动了三个容器。我对外暴露9000的访问端口。
在这里插入图片描述
3.访问项目
在这里插入图片描述
项目已经基于容器的方式运行成功了。redis中也是有数据写入的。
在这里插入图片描述
访问日志也是正常的
在这里插入图片描述

























手工启动项目不仅繁琐易错,而且还存在一个致命问题:当前应用访问的 mysql 与 redis只能是运行在当前 Docker 宿主机之上的,否则将无法访问到它们。因为在应用的配置文件中已经将 mysql 与 redis 的 IP 进行了硬编码。而使用 Docker Compose 可以解决所有问题

 
  
 
  

1.定义 compose.yml

 
  

修改application.yml配置文件
将 mysql 与 redis 的主机名修改为它们相应服务的名称。
在这里插入图片描述
之后重新打包上传
在这里插入图片描述










2.启动所有容器

 
  

在这里插入图片描述
访问应用
Docker compose已经成功将项目运行起来了。
在这里插入图片描述
在这里插入图片描述
错误排查,可能会遇到端口占用的情况
在这里插入图片描述
















3.指定各组件名称

compose2.yml

 
  
 
  

在这里插入图片描述
指定自定义的服务名后,程序访问仍然是正常的
在这里插入图片描述




4.查看项目的Docker网络

 
  
 
  

5.管理服务

 
  
 
  

在这里插入图片描述
访问管理页面
在这里插入图片描述




Portainer安装文档

Portainer可以管理集群,

 
  

在这里插入图片描述

 
  

在这里插入图片描述
访问portainer管理页面:ip+端口号(10.0.0.227:7100)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述










安装Harbor

 
  
 
  
 到此这篇docker训练模型(docker基础教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就! 
  

                            

版权声明


相关文章:

  • 电路物理知识点总结(物理电路基础知识讲解)2026-05-10 22:18:11
  • 操作系统应用基础(操作系统应用题及答案)2026-05-10 22:18:11
  • 操作系统应用基础(操作系统基础教程)2026-05-10 22:18:11
  • 计算机硬件基础知识题库(计算机基础软硬件知识)2026-05-10 22:18:11
  • 计算机软硬件基础知识题库(计算机软件基础知识试题)2026-05-10 22:18:11
  • 操作系统基础题(操作系统基础题库)2026-05-10 22:18:11
  • 操作系统的基础有哪些(操作系统的基本功能及操作)2026-05-10 22:18:11
  • 计算机硬件基础教程视频(计算机的硬件基础)2026-05-10 22:18:11
  • 计算机硬件基础知识题库及答案(计算机硬件基础知识题库及答案详解)2026-05-10 22:18:11
  • oracle基础教程(oracle零基础视频教程)2026-05-10 22:18:11
  • 全屏图片