一.Docker简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

二.在Linux上部署Docker的步骤

以下是在Linux上安装Docker的步骤:

1:更新系统(可选)

在安装Docker之前,需要确保系统是最新的。可以使用以下命令更新系统:

sudo apt-get update

2:安装Docker

在CentOS上,可以使用yum安装Docker:

sudo yum install docker

3:启动Docker服务

安装完成后,需要启动Docker服务:

sudo systemctl start docker

也可以设置Docker服务在启动时自动运行:

sudo systemctl enable docker

4:验证Docker是否安装成功

运行以下命令来验证Docker是否安装成功:

docker --version

如果Docker已经成功安装,这个命令会输出Docker的版本信息。


三.在Docker中部署MySQL:5.7

1:拉取MySQL镜像

从Docker Hub上拉取MySQL的镜像。使用以下命令拉取5.7的MySQL镜像(不同版本都可以指定):

docker pull mysql:5.7

2:运行MySQL容器

可以使用以下命令来运行一个MySQL容器:

docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=sailing -d mysql:5.7

这个命令会创建一个新的MySQL 5.7容器,并将容器的3306端口映射到主机的3306端口。需要将sailing替换为你想要设置的MySQL root用户的密码。

3:验证MySQL容器是否运行成功

使用以下命令查看正在运行的Docker容器:

docker ps

如果MySQL容器正在运行,就能在输出中看到它。


四.在Docker中部署Oracle

Oracle介绍:

  1. Oracle XE (Express Edition):
  • XE是什么:XE代表Express Edition,是Oracle数据库的一个免费版本。它具有一些限制,例如CPU、内存和存储限制,但提供了一个完整的Oracle数据库系统,非常适合学习、开发和小型生产环境。
  • 关于“数据库”:在Oracle中,术语“数据库”通常指的是物理存储结构,其中包括数据文件、控制文件和重做日志文件。XE是数据库实例的名称,你可以连接到它并在其中创建表、视图等。
  • 是否可以创建自己的数据库:在Oracle XE中,你通常不会创建自己的“数据库”,因为它通常只允许一个数据库实例。但你可以创建自己的模式(用户),并在其中创建自己的对象(如表、视图等)。
  1. Oracle角色:SYS AS SYSDBA:
  • SYS用户:SYS是Oracle数据库的内置超级用户,具有对数据库的完全控制权。
  • SYSDBA角色:SYSDBA是一种特权,允许用户执行高级管理任务,例如启动和关闭数据库、备份和恢复等。
  • “SYS AS SYSDBA”:这个表达式表示以SYS用户身份并具有SYSDBA特权连接。这是执行数据库维护任务的常用方法。
  • 账户、角色和数据库的关系:账户代表数据库中的用户。角色是权限和特权的集合,可以分配给用户。数据库是物理存储结构,其中包括用户、角色和数据对象。
  1. 创建自己的账户、角色和数据库:
  • 创建账户:你可以创建自己的用户(账户),并为其分配特定的权限和角色。例如,你可以创建一个只能访问特定表的用户。
  • 创建角色:你可以创建自定义角色,并为其分配特定的权限。然后,你可以将这些角色分配给用户。
  • 创建数据库:在Oracle XE中,你通常不会创建新的数据库,但可以创建新的模式和用户,并在其中工作。

1:获取Oracle Database XE Docker镜像

  • Oracle提供了Oracle Database XE的Docker镜像,可以在Oracle的容器注册中心下载:https://container-registry.oracle.com
  • 登录oracle账号后,同意协议。
  • 在linux输入下面的命令登录你的oracle账号:
docker login container-registry.oracle.com
  • 然后输入希望下载的版本(下面这个是快捷版本),开始下载:
docker pull container-registry.oracle.com/database/express:21.3.0-xe

2:运行Oracle容器

具体自定义配置可以参考:https://container-registry.oracle.com/ords/f?p=113:4:5474493143833:::4:P4_REPOSITORY,AI_REPOSITORY,AI_REPOSITORY_NAME,P4_REPOSITORY_NAME,P4_EULA_ID,P4_BUSINESS_AREA_ID:803,803,Oracle%20Database%20Express%20Edition,Oracle%20Database%20Express%20Edition,1,0&cs=3XKtcNm1ERChRlSxd-L4F990icRLgLOsKX4nfjjg_DNmbN-SOnJzi847Alu60whkYafstPBobvputEW8E_J1Wjg

我这里使用以下命令来运行一个Oracle容器 :

docker run --name oracle -d -p 1521:1521 -e sailing container-registry.oracle.com/database/express:21.3.0-xe

这个命令会创建一个新的Oracle容器,并将容器的1521端口映射到主机的1521端口。密码设置为saling

3:验证Oracle容器是否运行成功

使用以下命令来查看正在运行的Docker容器:

docker ps

如果Oracle容器正在运行,就能在输出中看到它。

用jdbc链接显示成功:

数据库:XE

用户名:sys

密码:sailing

角色:sys as sysdba

端口:1521

五.在Docker中部署kafka

1. 安装Docker Compose

如果你的系统还没有安装Docker Compose,你可以通过以下命令安装:

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

如果连接不上github,可以手动下载,下载后按照上面的名称和位置保存并执行命令:https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64

2. 创建Docker Compose文件

在一个空目录中,创建一个名为docker-compose.yml的文件,并粘贴以下内容:

version: '2'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:latest
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181

  kafka1:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.20.52.135:9092

  kafka2:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper
    ports:
      - "9093:9093"
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.20.52.135:9093

  kafka3:
    image: confluentinc/cp-kafka:latest
    depends_on:
      - zookeeper
    ports:
      - "9094:9094"
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://172.20.52.135:9094

这个文件定义了一个Zookeeper节点和三个Kafka节点。

3. 启动Kafka集群

在包含docker-compose.yml文件的目录中,运行以下命令来启动集群:

docker-compose up -d

4. 验证集群状态

可以使用以下命令来查看集群的状态:

docker-compose ps

5. 停止和清理集群

当不再需要集群时,可以使用以下命令来停止和清理资源:

docker-compose down

6. 验证链接kafka

6.1. 进入Kafka容器

你可以使用以下命令进入其中一个Kafka容器内部:

docker exec -it docker-kafka_kafka1_1 /bin/bash

这将允许你在Kafka容器内运行命令和工具。

6.2. 创建主题

你可以使用以下命令在Kafka集群中创建一个新主题:

kafka-topics --create --topic my_topic --bootstrap-server kafka1:9092 --partitions 1 --replication-factor 1

6.3. 生产消息

你可以使用以下命令向Kafka主题发送消息:

kafka-console-producer --topic my_topic --bootstrap-server kafka1:9092

然后,你可以在命令行中输入消息,每输入一行就会发送一个消息。

6.4. 消费消息

你可以使用以下命令从Kafka主题消费消息:

kafka-console-consumer --topic my_topic --from-beginning --bootstrap-server kafka1:9092

六.将Docker的镜像进行存储转移

1.将docker镜像打包成tar文件:

请将 <path/to/save/image.tar> 替换为你想要保存 tar 文件的路径,将 <image-name><tag> 替换为你想要保存的镜像的名称和标签。

docker save -o <path/to/save/image.tar> <image-name>:<tag>

例如,如果你想要保存名为 container-registry.oracle.com/database/express、标签为 21.3.0-xe 的镜像到 /home/username/oracle_image.tar,则可以使用以下命令:

docker save -o /home/username/oracle_image.tar container-registry.oracle.com/database/express:21.3.0-xe

现在可以在指定的路径找到 tar 文件,并将其复制到 Windows 机器或移动硬盘上。

2.将一个打成tar包的docker文件重新解压成镜像文件:

如果你想在另一台机器上加载这个镜像,你可以使用 docker load 命令。例如:

docker load -i /path/to/image.tar