拉取官方Mysql镜像
创建一个Mysql容器
- -v:挂载文件,启动的时候把容器中的文件映射到虚拟机文件当中
- –name:容器名,此处命名为mysql
- -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,(3380)冒号前面是主机端口,(3306)冒号后面容器内部端口
- -d:源镜像名,此处为 mysql:5.7
修改配置文件
进入到容器:
进入Mysql客户端:
设置随Docker自启动
Docker compose 安装 mysql:
mysql8.0解决navicat 连接不上虚拟机报错:Client does not support authentication protocol requested by server; conside:
上面我们已经创建了一个Mysql服务,这里作为主从中的master服务。
docker-compose部署mysql5.7、mysql 8、单点、双主
下面用同样的方式创建一个Mysql的slave服务。
进入到 Master 服务器:
进入Mysql客户端:
修改配置文件:
一般docker容器中没有vi或者其它相应的文本编辑器,如果只是为了修改这个配置文件就安装一个vi,太麻烦了,下面是另一种方案。
通过docker cp把这个文件拷贝出来:
再拷贝回去:
在容器中重启Mysql服务:
这个命令会使得容器停止,重新启动容器就可以了。
创建数据同步用户:
进入到 Master 服务器:
进入Mysql客户端:
配置完成后重启mysql,和配置 Master 一样,会使容器停止,需要启动容器。
然后到 Slave 中进入 mysql,执行命令:
- master_host: Master 的IP地址
- master_user: 在 Master 中授权的用于数据同步的用户
- master_password: 同步数据的用户的密码
- master_port: Master 的数据库的端口号
- master_log_file: 指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
- master_log_pos: 从哪个 Position 开始读,即上文中提到的 Position 字段的值
- master_connect_retry: 当重新建立主从连接时,如果连接失败,重试的时间间隔,单位是秒,默认是60秒。
执行以下命令,开始开启主从同步:
拉取Redis镜像
可以从官网下载配置文件后修改也可以直接在配置文件中填写:
redis-server /etc/redis/redis.conf --appendonly yes:
这是容器启动后执行的命令。它启动 Redis 服务器,使用 /etc/redis/redis.conf 作为配置文件,–appendonly yes:启用 AOF 持久化模式。
启动Redis客户端
重启Redis服务
设置随Docker自启动
拉取镜像和Redis配置文件参考上一章节。
编写docker-compose.yml编排文件:
启动容器:
1、拉取镜像
去docker hub,找到nginx镜像。
2、启动容器
启动nginx应用容器,并映射88端口。
3、修改容器内容
修改默认的index.html 页面。
4、将修改后的容器制作成新镜像
将自己修改好的镜像提交。
5、挂载数据
6、扩展命令
示例代码:https://gitee.com/leifengyang/java-demo.git
1、以前开发流程
- 编写一个SpringBoot应用。
- SpringBoot 打包成可执行 jar。
- 把 jar 包上传给服务器。
- 服务器需要安装 Java。
- 服务器运行应用 java -jar。
缺点: 需要安装 Java 运行环境,如果在别的机器运行这个应用的话,需要提前准备好 Java 环境。
2、现在
机器都安装Docker,任何应用都认为是一个镜像,所有机器都可以运行。
3、打包成镜像
(1)SpringBoot 打包成可执行 jar,并上传到服务器。
(2)编写 Dockerfile 文件进行打包。
优点: 运行应用无需安装运行环境,运行镜像即可,因为镜像已经集成了运行环境。
参考: Docker push镜像到阿里云
拉取zookeeper、kafka镜像:
分别启动zookeeper、kafka容器:
查看kafka日志:
使用docker-compose方式安装kafka:
创建 docker-compose.yml 文件:
在docker-compose.yml 文件目录执行:
kafka相关命令:
nacos镜像地址
Docker安装nacos2.2.0并开启鉴权
Docker安装nacos2.2.3
-d 表示以守护进程方式运行容器;
–name nacos 给容器命名为nacos;
-p 8848:8848 将容器的8848端口映射到宿主机的8848端口;
-e MODE=standalone 设置环境变量,指定Nacos以单机模式运行;
Nacos2.2.2之前版本默认的控制台,无论服务端是否开启鉴权,都会存在一个登录页。
Nacos2.2.2之后版本开始,在未开启鉴权时,默认控制台将不需要登录即可访问,同时在控制台中给予提示,提醒用户当前集群未开启鉴权。
8848:这是Nacos服务的主端口,用于客户端、控制台以及OpenAPI的HTTP通信。
9848:客户端gRPC请求服务端的端口,客户端通过此端口向Nacos服务端发起连接和请求。
9849:服务端gRPC请求服务端的端口,主要用于服务间的同步等操作。
nacos配置文件:
Docker compose 安装 Nacos: