Linux

CentOS 上の Docker にウェブサーバーを入れて80番以外のポートで公開することができない問題【未解決】

投稿日:2018年7月24日 更新日:

CentOS 7 上の Dockerコンテナ にウェブサーバーを入れた場合、80番以外のポートで公開することはできないようです。

例えば、

まず、firewall-cmd コマンドで 8080番ポートを開けておき、

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

以下のように Apache のイメージを元にした Dockerコンテナを起動します。

docker run -dit --name my-apache-app -p 8080:80 httpd:2.4

この操作によって、8080番ポートでウェブサイトを公開できるのかなと思ったのですが、少なくとも CentOS 7 の場合はうまくいきません。firewalld の設定に問題があり(?)、外部からのアクセスを Dockerコンテナに渡すところで止まっているようです。

似たような問題かなと思ったのが、Docker vs. firewalld on CentOS 7 · Issue #16137 · moby/moby · GitHub です。ここでは、Docker 自体の問題ではなく、RedHat (CentOS) 側のバグだと主張されており、firewalld のレポジトリ側にも issue が投稿されていましたが、既に解決済みとなっています。最初のページにあった解決策らしき手順も試してみましたがうまくいきません。

今回はこれ以上深入りする時間がなかったのですが、今後何解決策が見付かりましたらここに追記したいと思います。

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

CentOS

CentOS 8 で spacewalk を削除する

目次1. spacewalk に関する警告が表示される2. spacewalk を削除する3. 参考 1. spacewalk に関する警告が表示される 2020年のある日、CentOS 8 で dn …

Linux

シェルスクリプト (Bash) では組み込みコマンド set を活用しましょう

Linux や MacOS、Windows の WSL でシェルスクリプト(Bash)を書く場合は、組み込みコマンド set を活用しましょう。より完成度の高い処理を書くことができます。 スポンサード …

Linux

Ubuntu: タブ補完が効かなくなった場合の対処法 (bash)

Ubuntu: タブ補完が効かなくなった場合の対処法 (bash)について説明します。

Linux

シェルスクリプト:配列の要素をループ処理する書き方

シェルスクリプトで、配列の要素をループ処理する記述方法を紹介します。

Linux

ドキュメントルートに chmod コマンドを実行する際、指定すると便利なモード引数

目次1. はじめに2. chmod に関する前提知識3. ディレクトリは rwxr-xr-x ファイルは rw-r–r– にする解説4. ディレクトリは rwxrwxr-x ファイルは rw-rw …