Skip to content

DNET_OracleDockerCompose

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

OracleをDockerコンポーズ化する。

概要

  • 気軽にDocker Hubから使えない。

    • 自分でdocker buildするか、
    • OracleCRから取得する。
      • ログインが必要
      • ただし、古く、使い勝手も悪いらしい。
  • Windowsの場合、以下を利用して、自分でdocker build可能。

    • Git Bash
    • Docker for Windows
  • ココまで評価してみたが、
    現時点ではWindows環境では使え無さそう。

    • Vmmemが非常に重くなる。
    • ORACLE_PWDなどの環境変数が効かない。
    • XEPDB1が作成されていない。

詳細

Dockerfile

Oracle

ベースイメージを作成
(*.sh内でDockerfileによるdocker buildを行う)

自作

ベースイメージ上でインストールを行う。
(自作Dockerfileをdocker-compose.yml経由でdocker build)

FROM oracle/database:18.4.0-xe

RUN yum -y install vi
RUN echo 'TZ="Asia/Tokyo"' > /etc/sysconfig/clock
RUN cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
RUN echo 'LANG="ja_JP.UTF-8"' > /etc/sysconfig/i18n
RUN echo 'LC_CTYPE="ja_JP.utf8"' >> /etc/sysconfig/i18n
RUN yum reinstall -y glibc-common
RUN yum reinstall -y glibc
RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8

EXPOSE 1521

※ 「#」のコメントがエラーになったタメ外した。

docker-compose.yml

作成

version: "2.0"

services:

  oracle:

    build:
      context: .
      dockerfile: Dockerfile

    container_name: oracle_xe_db

    shm_size: 1g # 共有メモリを1GB以上にしないとコンテナ起動時にエラーが発生します。

    environment:
    - TZ=Asia/Tokyo
    - LANGUAGE=ja_JP.ja
    - LANG=ja_JP.UTF-8
    - NLS_LANG=Japanese_Japan.AL32UTF8 # sqlplusの日本語化でこの環境変数が必要になります。
    - ORACLE_PWD=system # パスワードは適宜指定します。

    ports:
    - 1521:1521

    volumes:
    - ./init:/docker-entrypoint-initdb.d/startup

起動

debug時は「-d」を外す。

>docker-compose up -d

クライアント

コンテナ内のSQLPlus

  • 環境変数(ORACLE_PWD)の値で認証できないので、
    OS認証を使用して、接続まではできた。

    >docker exec -it oracle_xe_db /bin/bash
    
    bash-4.2#
    bash-4.2# su oracle
    [oracle@6315f4fefe02 /]$ sqlplus / as sysdba
    
    SQL*Plus: Release 18.0.0.0.0 - Production on 水 12月 16 13:32:19 2020
    Version 18.4.0.0.0
    
    Copyright (c) 1982, 2018, Oracle.  All rights reserved.
    
    Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
    Version 18.4.0.0.0
    に接続されました。
    SQL>
    
  • XEPDB1も存在しない。

    SQL> alter session set container = XEPDB1;
    ERROR:
    ORA-65011: プラガブル・データベースXEPDB1が存在しません。
    
  • Vmmemが非常に重くなり、上手く利用できなかった。

SQL Developer

Oracle11gXE + ODP.NET Managed Driverの該当節を参照。

参考

https://github.com/oracle/docker-images/blob/master/OracleDatabase/SingleInstance/README.md

Oracle

Qiita

マイクロソフト系技術情報 Wiki

移行メモ

  • 「Git Bushを起動」→「Git Bashを起動」に修正した (概要では「Git Bash」と表記されている)。
  • 元 Wiki では見出しそのものが他ページへのリンクになっていた箇所 (「SQL Developer」「Oracle11gXE + ODP.NET Managed Driver」)は、 GitHub Wiki では見出しからアンカが生成されるため、 見出しをプレーン・テキストとし、リンクは直下の本文に置いた。
  • マイクロソフト系技術情報 Wiki(techinfoofmicrosofttech.osscons.jp)への URL リンクは、移行済みの Oracle11gXE + ODP.NET Managed Driver に張り替えた。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, Oracle, Oracle XE, Docker, docker-compose, Dockerfile, SQL*Plus, Windows

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally