Docker安装Oracle
你好呀,我的老朋友!我是老寇,欢迎来到老寇IoT云平台!
# 推送镜像
众所周知,Docker拉取Oracle非常慢,所以,我们可以通过Github Action把 Docker官方 Oracle 镜像推送到阿里云镜像仓库
name: Pull and Publish
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Check out source
uses: actions/checkout@v4
docker:
name: Pull Oracle and push to Aliyun
runs-on: ubuntu-latest
env:
# Oracle 原始镜像
ORACLE_IMAGE: container-registry.oracle.com/database/free:latest
# 阿里云镜像仓库
ALIYUN_REGISTRY: registry.cn-shenzhen.aliyuncs.com
ALIYUN_NAMESPACE: xxx
ALIYUN_REPOSITORY: oracle
steps:
- name: Check out source
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# 登录 Docker Hub 镜像仓库
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
# 登录阿里云镜像仓库
- name: Log in to Aliyun Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.ALIYUN_REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
# 拉取 Oracle 镜像
- name: Pull Oracle image
run: |
docker pull $ORACLE_IMAGE
# 重新打阿里云 Tag
- name: Tag Oracle image
run: |
docker tag \
$ORACLE_IMAGE \
$ALIYUN_REGISTRY/$ALIYUN_NAMESPACE/$ALIYUN_REPOSITORY:latest
# 推送到阿里云
- name: Push Oracle image to Aliyun
run: |
docker push \
$ALIYUN_REGISTRY/$ALIYUN_NAMESPACE/$ALIYUN_REPOSITORY:latest
# 运行容器
services:
oracle:
image: registry.cn-shenzhen.aliyuncs.com/xxx/oracle:latest
container_name: oracle
restart: unless-stopped
ports:
- "1521:1521"
environment:
ORACLE_PWD: "Oracle123456"
ORACLE_CHARACTERSET: "AL32UTF8"
shm_size: "1g"
volumes:
- ./oracle:/opt/oracle/oradata
networks:
- iot_network
networks:
iot_network:
driver: bridge
注意:需要使用oracle用户权限创建文件夹
id oracle
sudo mkdir -p /home/a/app/oracle
sudo chown 54321:54321 /home/a/app/oracle
sudo chmod 750 /home/a/app/oracle
# 启动容器
docker compose up -d oracle
# 需要等待10分钟才能完成初始化
docker logs oracle
我是老寇,我们下次再见啦!
上次更新: 10/28/2026, 3:29:06 PM