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

yum のエラー「Not using downloaded repomd.xml because it is older than what we have」

私が管理している CentOS 7 から yum に関するエラー通知メールが送られてきました。 目次メールの内容対応方法実際に実行してみました メールの内容 以下がメールの抜粋になります。 件名: C …

Let's Encrypt

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

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

Linux

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

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

Linux

指定した条件にマッチするファイルを検索する find コマンド

find コマンドについて説明します。 ※ 本ページで扱うのは、find (GNU findutils) 4.7.0-git です。 目次1. find コマンドの使い方式 (EXPRESSION)式 …

Linux

コマンドラインからメールを送信する方法

Linux (や Mac) のターミナルエミュレータ上からメールを送信するコマンドを紹介します。 目次1. sendmail2. mail3. telnet4. おわりに 1. sendmail se …