質問: ### 実現したいこと ホストからnginx用Dockerコンテナに接続したいです。nginx用Dockerコンテナのポート番号を80として、 これをホストのポート番号55555にポートマッピングして使用したいです。しかし、エラーが発生してしまいました。 ### 発生したエラー curlコマンドにて下記のエラーが発生しています。 ``` Host$ sudo curl localhost:55555 curl: (7) couldn't connect to host ``` ### 前提 HostはCentOS7です。Dockerイメージを1つ作成しました。nginx用イメージです。 nginx用のイメージはUbuntuで作り、apt-getコマンドを使用しnginxをインストールし、それをコミットしたものです。 その後以下のように設定しました。 ``` DockerContainer$ echo "daemon off;" >> /etc/nginx/nginx.conf DockerContainer$ update-rc.d nginx defaults DockerContainer$ service nginx start ``` 設定後、Dockerコンテナを抜けました。 ``` DockerContainer$ exit ``` その後、作成したコンテナをイメージ名nginxとしてコミットしました。 ``` Host$ sudo docker commit container nginx ``` 最後に、コミット後、先ほどまで設定を行っていたDockerコンテナを削除し、 新しくコミットしたイメージからポートマッピングオプションを付けてコンテナを作成しました。 ``` Host$ sudo docker run -dp 55555:80 --name="nginx" nginx ``` この状態からcurlコマンドを使用したところ、エラーが発生しました。 勉強不足で申し訳ありません。宜しくお願いいたします。
回答: 私も詳しくはないので、的外れでしたらご容赦ください。 Docker のコンテナは起動時に予め設定されたプロセスを起動するため、通常の Linux の起動プロセスは走りません。よって、service に登録してもサーバは起動されていないのだと思います。 nginx を起動するためのコマンドを `docker run` の引数や、Dockerfile の `CMD` で指定してみると動くかもしれません。 もしくは、単に nginx を動かしたいだけなのであれば、nginx の公式イメージがあるので、こちらを利用しても良いと思います。