#!/bin/bash
# 1. 检查是否安装了 Docker
if ! command -v docker &> /dev/null; then
echo "Docker 未安装,正在安装 Docker..."
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker 安装完成!"
else
echo "Docker 已安装。"
fi
# 2. 拉取 Oracle Free Database 镜像
IMAGE_NAME="container-registry.oracle.com/database/free:latest"
if [[ "$(docker images -q $IMAGE_NAME 2> /dev/null)" == "" ]]; then
echo "Oracle Free Database 镜像未找到,正在拉取镜像..."
sudo docker pull $IMAGE_NAME
if [ $? -ne 0 ]; then
echo "拉取镜像失败,请检查网络或镜像名称是否正确。"
exit 1
fi
else
echo "Oracle Free Database 镜像已存在。"
fi
# 3. 创建数据存储目录
DATA_DIR="/opt/oracle/data"
if [ ! -d "$DATA_DIR" ]; then
echo "创建数据存储目录:$DATA_DIR"
sudo mkdir -p $DATA_DIR
sudo chown -R $USER:$USER $DATA_DIR
sudo chmod -R 777 $DATA_DIR
else
echo "数据存储目录已存在:$DATA_DIR"
fi
# 4. 启动 Oracle 容器
CONTAINER_NAME="oracle-free"
if [[ "$(docker ps -aq -f name=$CONTAINER_NAME 2> /dev/null)" != "" ]]; then
echo "Oracle 容器已存在,尝试重启容器..."
sudo docker rm -f $CONTAINER_NAME
fi
echo "启动 Oracle 容器..."
sudo docker run -d \
--name $CONTAINER_NAME \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_SID=FREE \
-e ORACLE_PWD=123456 \
-v $DATA_DIR:/opt/oracle/oradata \
$IMAGE_NAME
# 等待容器初始化完成
echo "等待 Oracle 数据库初始化完成(大约需要 2-5 分钟)..."
sleep 10
echo "启动 Oracle 容器..."
sudo docker run -d \
--name $CONTAINER_NAME \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_SID=FREE \
-e ORACLE_PWD=123456 \
-v $DATA_DIR:/opt/oracle/oradata \
$IMAGE_NAME
# 等待容器初始化完成
echo "等待 Oracle 数据库初始化完成(大约需要 2-5 分钟)..."
sleep 10
#sudo docker ps -a
#sudo docker start eb1493dda045
docker安装oracle
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 用 Docker 搭建 ORACLE 数据库开发环境 https://www.jianshu.com/u/82a1...
- 查找oracle镜像docker search oracle 我们选择学习版,不选择完整版oracle-xe-11...
- 一、Mac中Docker的部署 首先,你需要在Mac中部署Docker,也就是安装Docker。安装Docke...
- 1.下载并安装Docker 第一步:下载docker(500M左右)下载连接:https://download.d...
- 一、安装docker 1、移除旧版本: yum remove docker docker-client docke...