⑥CoreOSでDockerしてみる(PrivateなDockerレポジトリ⇒EPM-Xの場合)

稼働しているEPM-XのDockerコンテナでイメージを作成して、
Docker Registry経由で、他のCoreOSに環境を移してみます。


■起動中のDockerコンテナでDockerイメージを作成

docker stop epm-x
docker commit epm-x localhost:5000/epm-x


■Docker Registryに登録
Docker Registryにpushします。

docker push localhost:5000/epm-x

Docker Registryに登録されたイメージ一覧は、WEBブラウザから確認できます。
http://:5000/v2/_catalog
{"repositories":["epm-x"]}


■クライアントCoreOSの設定変更
他のCoreOSからDockerイメージをpullすると、HTTPS通信が必要なため、エラーになります・・・
SSL証明書を発行するのは面倒なので、insecure-registryオプションをつけてHTTPアクセスに変更します。

CoreOSのインストール時に、cloud-config.ymlに下記を追記しておきます。

coreos:
  units:
    - name: docker.service
      drop-ins:
        - name: 50-insecure-registry.conf
          content: |
            [Service]
            Environment=DOCKER_OPTS='--insecure-registry="<Docker RegistryのIPアドレス>:5000"'


■Docker RegistryからDockerイメージを取得
Docker RegistryからDockerイメージを取得します。

docker pull <Docker RegistryのIPアドレス>:5000/epm-x


■Dockerコンテナの起動
取得したDockerイメージで、Dockerコンテナを起動します。

sudo docker run --restart=always --name epm-x -d -i -t -p 80:80 <Docker RegistryのIPアドレス>:5000/epm-x


Dockerサービス起動後に、Docker execコマンドでサービスを起動するようにします。

sudo vi /etc/systemd/system/epm-x.service
sudo systemctl enable /etc/systemd/system/epm-x.service
#/etc/systemd/system/epm-x.service
[Unit]
Description=EPM-X Service
After=docker.service
Requires=docker.service

[Service]
ExecStart=/usr/bin/docker exec epm-x bash -c '/etc/init.d/postgresql start && /etc/init.d/httpd start && /etc/init.d/ipftools-tomcat start'

[Install]
WantedBy=multi-user.target


http:///trac/sample_project にブラウザからアクセスします。
保存した状態のDockerコンテナが起動できていますね。設定を変更した、EPM-Xが起動しています。