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 を CentOS Stream に移行するコマンド

目次1. 突然の CentOS 8 終了宣言2. CentOS Stream に移行するコマンド3. 2021年5月:移行作業を行いました4. 参考 1. 突然の CentOS 8 終了宣言 Cent …

CentOS

CentOS 6 で yum update した時、remi-php70 レポジトリ内のパッケージの依存性解決ができない場合の解決方法

目次現象解決方法 その1解決方法 その2解決方法 その3まとめ参考 現象 remi-php70 リポジトリを使っている CentOS 6 の環境で PHP関連のパッケージを更新しようと思い、以下のコマ …

Let's Encrypt

Let’s Encrypt を使ってみました

無料でSSL証明書が発行できる Let’s Encrypt を使ってみました。 その時の操作手順を紹介します。 本記事執筆時に存在していた「Let’s Encrypt 総合ポー …

Linux

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

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

CentOS

CentOS 6 での yum update エラーに対応しました

問題 先日、CentOS 6.9 で yum update したところ、以下のエラーが発生しました。 https://ca.mirror.babylon.network/remi/enterprise …