Dockerコンテナを使用してAlibaba Cloud上でOracle 12cデータベースを実行する

このチュートリアルでは、**Docker**コンテナを使用して**Oracle** 12cを**Alibaba Cloud**上でホストする方法を紹介します。

本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/running-oracle-12c-database-on-alibaba-cloud-containers_594327)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。

#Alibaba Cloud上でDockerを使用してOracle 12cをホスティングする
500以上の新機能で、Oracle Database 12cは、Oracleの顧客がクラウドコンピューティング、ビッグデータ、セキュリティ、および可用性の必要性を与えるように設計されています。Dockerは、コンテナ内のアプリケーションをパッケージ化するオープンソースのコンテナソフトウェアですので、それらはLinux上で実行されているシステム間でポータルすることができます。OracleはOracle 12 cのDockerイメージをリリースし、Alibaba CloudはコンテナとLinux VMの両方を持っているので、Alibaba Cloud上でOracle Database 12cを採用するのに役立ちます。

#1. Ubuntu 16.04にDockerをインストール
公式のUbuntu 16.04リポジトリで利用可能なDockerのインストールパッケージは、最新版ではない場合があります。最新かつ最高のバージョンを入手するには、公式のDockerリポジトリからDockerをインストールします。ここでは、その方法を紹介します。

まず、公式DockerリポジトリのGPGキーをシステムに追加します。

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

APTソースにDockerリポジトリを追加します。

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

次に、新しく追加したレポのDockerパッケージでパッケージデータベースを更新します。

```
sudo apt-get update
```

デフォルトのUbuntu 16.04のレポではなく、Dockerのレポからインストールしようとしていることを確認してください。

```
apt-cache policy docker-ce
```

以下のような出力が表示されるはずです。

```
Output of apt-cache policy docker-ce
docker-ce:
   Installed: (none)
   Candidate: 17.03.1~ce-0~ubuntu-xenial
   Version table:
      17.03.1~ce-0~ubuntu-xenial 500
500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
      17.03.0~ce-0~ubuntu-xenial 500
500 https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
```

docker-ceはインストールされていませんが、インストール候補はUbuntu 16.04のDockerリポジトリからであることに注意してください。docker-ceのバージョン番号が違うかもしれません。

最後にDockerをインストールします。

```
sudo apt-get install -y docker-ce
```

これでDockerがインストールされ、デーモンが起動し、起動時にプロセスが起動するようになったはずです。実行されていることを確認してください。

```
sudo systemctl status docker
```

出力は以下のようなもので、サービスがアクティブで実行されていることを示します。


```
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2016-05-01 06:53:52 CDT; 1 weeks 3 days ago
Docs: https://docs.docker.com
Main PID: 749 (docker)
```

#2. Alibaba Cloud上にOracle Dockerイメージを設定する
上記で作成したVMに資格情報を入力してDockerストアにログインします。

```
$ docker login
$ docker pull store/oracle/database-enterprise:12.2.0.1
$ docker run -d -it --name db1 -P store/oracle/database-enterprise:12.2.0.1
```

以下のようにすると、docker images と docker ps -a コマンドを実行すると、以下のような出力が表示されます。

```
root@iZt4neefbpoojkuy4fdvqzZ:~# docker images
REPOSITORY            TAG        IMAGE ID      CREATED         SIZE

store/oracle/database-enterprise 12.2.0.1     12a359cd0528   2 months ago  3.44GB

root@iZt4neefbpoojkuy4fdvqzZ:~# docker ps -a
CONTAINER
ID     IMAGE     COMMAND     CREATED     STATUS     PORTS     NAMES
92997757be9e     store/oracle/database-enterprise:12.2.0.1     "/bin/sh -c '/bin/..."     39 hours ago     Up 39 hours (healthy)     0.0.0.0:32775->1521/tcp, 0.0.0.0:32774->5500/tcp     db1
```

おめでとうございます。Alibaba Cloud [VM Container](https://www.alibabacloud.com/ja/product/ecs)上にDockerイメージを正常に設定しました。

#3. ローカルデスクトップからVM外のOracle DB Containerを接続する
###OracleサイトからOracle Clientをインストール
クライアントマシンにOracle Clientがインストールされていることを確認します。次のリンクからインストールできます： [http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html](https://www.oracle.com/database/technologies/instant-client/downloads.html)

インストールして、PATH変数が設定されていることを確認して、sqlplusコマンドを実行できるようにしてください。

```
Nikeshs-MacBook-Pro:~ nikeshgogia$ export PATH=$PATH:/Users/nikeshgogia/Downloads/instantclient_12_2
Nikeshs-MacBook-Pro:~ nikeshgogia$ sqlplus
```

###b. ローカルデスクトップからの接続を確立する

```
nikeshgogia$ sqlplus 
sys/Oradoc_db1@47.74.181.105:32775/ORCLCDB.localdomain as sysdba
```

以下のような出力が表示され、Connection Developedが表示されます。

注：上記のコマンドでは、`sys/Oradoc_db1@47.74.181.105:32775、sys`にはユーザ名Oradoc_db1がパスワード、ポートは32775となっています。セキュリティグループでこのポートを開いていることを確認し、IP 47.74...がパブリックIPであることを確認してください。さらに、サービス名として`ORCLCDB.localdomain`をそのままにしていることを確認する必要があります。

```
Nikeshs-MacBook-Pro:~ nikeshgogia$ sqlplus sys/Oradoc_db1@47.74.181.105:32775/ORCLCDB.localdomain as
sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sat Oct 28 11:16:44 2017
Copyright (c) 1982, 2017, Oracle. All rights reserved.
Last Successful login time: Thu Oct 26 2017 21:50:32 +05:30
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
```

#結論
以上のことから、Alibaba CloudはOracle 12cをホスティングすることができるという結論に至りました。Alibaba Cloud [Container Service](https://www.alibabacloud.com/ja/product/container-service)や[ECSサーバー](https://www.alibabacloud.com/ja/product/ecs)上でOracleを実行することで、安定した高度な機能を備えた最新のクラウド対応データベースを楽しむことができます。

*アリババクラウドは日本に２つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
[アリババクラウドジャパン公式ページ](https://www.alibabacloud.com/ja)*