По умолчанию сервер rails прослушивает IP 127.0.0.1, который недоступен вне контейнера.
Решение состоит в том, чтобы заставить сервер rails прослушивать порт 0.0.0.0:3000:
# rails s -b 0.0.0.0
=> Booting Puma
=> Rails 6.0.3.1 application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 4.3.5 (ruby 2.5.1-p57), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
С хост-компьютера:
$ curl http://localhost:3000
<!DOCTYPE html>
<html>
<head>
<title>Ruby on Rails</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<style type="text/css" media="screen" charset="utf-8">
body {
font-family: Georgia, sans-serif;
line-height: 2rem;
font-size: 1.3rem;
background-color: white;
margin: 0;
padding: 0;
color: #000;
}