当前位置: 首页 > news >正文

Docker 与数据库环境

Docker 是一个开源的容器化平台,它通过虚拟化操作系统级别的隔离来提供高效的资源利用。Docker 容器可以将应用程序及其所有依赖打包到一个轻量级的、可移植的容器中运行,确保环境的一致性。它解决了“在我的机器上没问题”的困扰,保证应用在任何环境中都能正常运行。

1. Docker 的优点

  • 轻量级:相较于传统虚拟机,Docker 容器启动速度极快,占用资源少。

  • 易于扩展:可以轻松打包、分发和运行应用。

  • 一致性:从开发到生产环境的一致性,确保代码在各个环境中的稳定运行。

2. Docker 安装与使用

2.1. Docker 安装与使用

1. 前往 Docker 官方网站 Docker for Mac 下载 Docker Desktop。

2. 下载 .dmg 文件并双击安装,按照指示拖动 Docker 到应用程序文件夹。

3. 安装完成后,打开 Docker Desktop,系统托盘上会出现 Docker 图标,等待状态显示为 Docker is running 即表示启动成功。

4. 在终端中验证 Docker 安装:

docker --version

2.2. Windows 上安装 Docker

1. 前往 Docker 官方网站 Docker for Windows 下载 Docker Desktop。

2. 下载后运行 .exe 安装文件,按照提示完成安装。

3. 启动 Docker Desktop 并等待其显示 Docker is running。

4. 验证安装:

docker --version

2.3. Linux 上安装 Docker

1. 更新系统包索引

sudo apt-get update

2. 安装所需依赖

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3. 添加 Docker 官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4. 添加 Docker APT 源

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

5. 安装 Docker

sudo apt-get update
sudo apt-get install docker-ce

6. 启动 Docker 服务并验证

sudo systemctl start docker
docker --version

3. Docker Desktop 安装与使用

Docker Desktop 提供了一个可视化的界面,让用户更方便地管理容器。下面介绍如何使用 Docker Desktop 安装 PostgreSQL 和 Redis。

3.1. 安装 bitnami/postgresql 并启动服务

1. 打开 Docker Desktop,点击 Images 标签页,搜索 bitnami/postgresql。

2. 拉取镜像

docker pull bitnami/postgresql

3. 启动容器

docker run --name postgres -e POSTGRESQL_PASSWORD=123456 -d bitnami/postgresql

这将创建并启动一个 PostgreSQL 容器,默认密码为 123456。或者通过 docker desktop 启动,启动时填写对应名称与参数即可。

3.2. 安装 bitnami/redis 并启动服务

1. 在 Docker Desktop 中搜索 bitnami/redis 并拉取镜像

docker pull bitnami/redis

2. 启动 Redis 容器

docker run --name redis -d bitnami/redis

这将启动一个 Redis 容器。或者使用 docker desktop 启动。

4. 安装 Navicat Premium 并连接 PostgreSQL

1. 前往 Navicat 官方网站 下载并安装 Navicat Premium。我这里提供一个

2. 打开 Navicat,点击左上角的 连接 按钮,选择 PostgreSQL。

3. 输入 PostgreSQL 容器的连接信息:

  • 主机:localhost

  • 端口:5432

  • 用户名:postgres

  • 密码:123456

4. 测试连接,确认无误后保存。

5. 连接成功后,点击 查询 ,输入 SQL 语句:

SELECT VERSION();

点击执行,确认查询结果为 2(或显示PostgreSQL版本信息),则表示 PostgreSQL 已成功安装并运行。

5. 使用 Navicat Premium/ DataGrip 连接 Redis 服务

1. 同样在 Navicat 中,选择 Redis 作为连接类型。

2. 输入 Redis 容器的连接信息:

  • 主机:localhost

  • 端口:6379

3. 测试连接,成功后保存。

4. 连接成功后,进入 Redis 服务,执行简单查询:

SET testkey "hello";
GET testkey;

如果返回结果为 hello,表示 Redis 连接成功。

6. Docker Compose

Docker Compose 是用于定义和运行多容器 Docker 应用的工具。你可以通过 docker-compose.yml 文件配置多个服务并一次性启动。

6.1. Docker Compose 安装与配置

安装 Docker Compose

1. 在 Mac 和 Windows 上,Docker Desktop 已默认包含 Docker Compose,不需要额外安装。

2. 对于 Linux 系统,使用以下命令安装:

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version

6.2. 编写 docker-compose.yml 文件

  • 示例文件:

version: '3'
services:db:image: postgresenvironment:POSTGRES_PASSWORD: mysecretpasswordports:- "5432:5432"redis:image: redisports:- "6379:6379"
  • 启动服务:

docker-compose up -d
  • 查看运行状态:

docker-compose ps

6.3. Docker Compose 常用命令

  • docker-compose up -d:后台启动所有服务。

  • docker-compose down:停止并移除所有容器。

  • docker-compose logs:查看服务日志。

7. 拓展内容

  • Kubernetes (K8s):Kubernetes 是一个开源的容器编排平台,能够自动部署、扩展和管理容器化应用。它提供了强大的容器调度、负载均衡、服务发现等功能,适用于生产环境中的大规模容器管理。

  • K3s:一个轻量级的 Kubernetes 发行版,适用于资源有限的设备和边缘计算。

  • MicroK8s:由 Canonical 开发的 Kubernetes 发行版,专为开发环境设计,具有易于安装和使用的特点。

http://www.dtcms.com/a/391566.html

相关文章:

  • Node.js 模块系统详解
  • proxy代理应用记录
  • 基于python大数据的汽车数据分析系统设计与实现
  • WebSocket实现原理
  • 从保存到加载Docker镜像文件操作全图解
  • IDEA文件修改后改变文件名和文件夹颜色
  • 【MySQL 】MySQL 入门之旅 · 第十篇:子查询与嵌套查询
  • TM52F1376 SSOP24电子元器件 HITENX海速芯 8位微控制器MCU 芯片 深度解析
  • 基于Matlab图像处理的工件表面缺陷检测系统
  • 业务上云实践MYSQL架构改造
  • 深入解析TCP/IP协议分层与通信原理
  • 【人工智能通识专栏】第二十讲:科创项目选题
  • 数据治理系列(三):SQL2API 平台格局与发展趋势
  • 软考-系统架构设计师 软件项目管理详细讲解
  • three.js添加CSS2DRenderer对象
  • 磁共振成像原理(理论)9:射频回波 (RF Echoes)-三脉冲回波(2)
  • 栈的主要知识
  • question:使用同一请求数据且渲染顺序不确定时复用
  • Redis群集三种模式介绍和创建
  • 【LeetCode 每日一题】1935. 可以输入的最大单词数
  • eeprom和flash的区别
  • [vibe code追踪] 分支图可视化 | SVG画布 | D3.js
  • [硬件电路-264]:数字电路的电源系统的主要特性包括哪些
  • 算法题(212):01背包(空间优化)
  • TP4054和TP4056对比
  • AD5165(超低功耗逻辑电平数字电位器)芯片的详细用法
  • 38、多模态模型基础实现:视觉与语言的智能融合
  • 租赁合同管理系统如何使用?功能深度解析
  • 构建高质量RAG知识库,文档解析破解AI应用的数据质量难题
  • CS课程项目设计17:基于Face_Recognition人脸识别库的课堂签到系统