質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

474閲覧

CentOS7上にDockerをインストールして、OpenEMRを実行し、外部からアクセスしたい

j-suzuki

総合スコア50

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2023/01/07 14:54

前提

CentOS7で現在apacheを使ってWebサーバを立てています。現状ではConnect-CMSやRocket.Chatなどを利用しています。

実現したいこと

追加の実験でdockerイメージのopenEMRをインストールして利用したい。
ドメインでhttps://emr.mydomain.comで外部からアクセスできるようにしたいです。

発生している問題・エラーメッセージ

CentOS7上でdockerイメージは起動できたのですが、外部からアクセスするための設定がわかりません。

dockerは

[root@ ~]# run -it -d --name openemr openemr/openemr [root@ ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9c5cc725f5bf openemr/openemr "./openemr.sh" 42 minutes ago Up 29 minutes 80/tcp, 443/tcp openemr [root@ ~]# inspect --format '{{ .NetworkSettings.IPAddress }}' openemr 172.17.0.2

試したこと

[root@ ~]# iptables -t nat -A DOCKER ! -i docker0 -p tcp -m tcp --dport 8001 -j DNAT --to-destination 172.17.0.2:80
[root@ ~]# iptables -A DOCKER -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT

ルーティングをするとの説明がWeb上にあったので、ここまでやりましたが、その後どうしたらいいかわかりません。できれば、ドメインでhttps://emr.mydomain.comで外部からアクセスできるようにしたいです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

部分的な回答になるかもしれませんが、--publishオプションで公開したいポートを指定すればホスト上からアクセスできるようにはなると思います。

Uses port 80 and 443 Port 80 is standard http Port 443 is https/ssl and uses a self-signed certificate by default. If assign the DOMAIN and EMAIL(optional) environment settings, then it will set up and maintain certificates via letsencrypt.

ドキュメントを見る限り、80443番ポートを公開しているようですので、例えば、以下であれば、Docker Host上のhttp://localhostあるいは、https://localhostでアクセス可能になると思います(内部的には、iptablesコマンドで行っているようなルーティングの仕組みですが、こちらのほうが簡単だと思います)。

shell

1$ docker run -d --publish 80:80 --publish 443:443 openemr/openemr

ドメインでhttps://emr.mydomain.comで外部からアクセスできるようにしたいです。

こちらは、どちらかというとDockerの設定というよりは、インストール先の実行環境(クラウドなど?)や、DNSの設定を、要件に合わせて行うのかなと思います。

投稿2023/01/08 04:16

編集2023/01/08 04:19
knuser

総合スコア178

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問