Docker编排利器DockerCompose,java锁面试题

Docker编排利器DockerCompose,java锁面试题,第1张

Docker编排利器DockerCompose,java锁面试题

services

services 节点下面的即是定义的各种服务,服务之下为容器,容器与容器直之间可以以服务名称为域名进行访问。

image

指定运行的镜像名称。

指定镜像为 mysql5.7

image: mysql:5.7

container_name

指定容器名称。

容器名称

container_name: admin_mysql

ports

指定宿主机和容器的端口映射。

映射 mysql端口

ports:

  • 3306:3306

volumes

将宿主机的文件或目录挂载到容器中。

挂载 mysql 目录到容器

volumes:

  • /itwxe/dockerData/mysql/data:/var/lib/mysql

  • /itwxe/dockerData/mysql/conf:/etc/mysql

  • /itwxe/dockerData/mysql/log:/var/log/mysql

environment

配置环境变量。

设置 mysql 密码

environment:

  • MYSQL_ROOT_PASSWORD=root

links

连接其他容器的服务。

可以 admin_mysql 为域名访问服务名称为 db 的容器

links:

  • db:admin_mysql
3. Docker Compose常用命令

启动所有相关容器

docker-compose up -d

指定文件启动

docker-compose -f docker-compose.yml up -d

停止所有相关容器

docker-compose stop

列出所有容器信息

docker-compose ps

停止并删除所有容器(注意数据挂载)

docker-compose down

三、SpringBoot示例


此处还是以自己写的项目为示例,我的项目依赖 MySQL、Redis、minio(非必要)。

1、打包 SpringBoot 项目镜像,打包可以参考 Docker使用maven插件打包SpringBoot项目。

2、我的项目启动依赖 MySQL 中的 sunny 库,首先得创建容器,挂载宿主机目录,可以参考 Docker搭建MySQL并挂载数据。

3、项目依赖 Redis 镜像自定义配置启动,可以参考 Docker搭建Redis5.0并挂载数据。

4、修改项目 MySQL 和 Redis 使用别名访问,以 MySQL 为例。

修改前

jdbc:mysql://192.168.5.33:3306/sunny?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=GMT%2B8

修改后

jdbc:mysql://admin_mysql:3306/sunny?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=GMT%2B8

5、编辑 docker-compose.yml 文件。

version: ‘3’

services:

指定MySQL服务名称

mysql:

指定服务使用的镜像

image: mysql:5.7

指定容器名称

container_name: admin_mysql

指定服务运行的端口

ports:

  • 3306:3306
指定容器中需要挂载的文件

volumes:

  • /itwxe/dockerData/mysql/data:/var/lib/mysql

  • /itwxe/dockerData/mysql/conf:/etc/mysql

  • /itwxe/dockerData/mysql/log:/var/log/mysql

指定容器的环境变量

environment:

  • MYSQL_ROOT_PASSWORD=123456
指定Redis服务名称

redis:

使用自定义镜像(指定配置文件)

image: itwxe/redis:5.0.8

container_name: admin_redis

ports:

  • 6379:6379

volumes:

  • /itwxe/dockerData/redis/data:/data
指定项目服务名称

sunny-admin:

指定服务使用的镜像

image: itwxe/sunny-admin:0.0.1

指定容器名称

container_name: sunny-admin

指定服务运行的端口

ports:

  • 9002:9002
指定容器中需要挂载的文件

volumes:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5678478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存