⑥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://
{"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://
保存した状態のDockerコンテナが起動できていますね。設定を変更した、EPM-Xが起動しています。