Docker - запустить HTML-файл в Docker

Я хочу создать Docker-контейнер, который может запускать HTML-файл в любой системе, просто требуя от пользователя ввода docker run..., Это HTML-код:

<!doctype html>
<html>
  <style>
    body {
      padding: 20px 5%;
      color: white;
      font-family: Sabon, serif;
      margin: auto;
      max-width: 800px;
    }
    @media (min-width: 600px) {
    }
  </style>
  <head>
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <title>D & T</title>
  </head>
  <body>
  <center>   
    <div id="headline">
      <header>
        <h1>Date and Time</h1>
        <p></p>
      </header>
      <div id="blurb">
        <p>This page will show you your current local time.</p> 
      </div>
    </div>
    <div id="section1">
      <h2></h2>
      <p>It is now</p>
    </div>
    <div id="section2">
      <script type="text/javascript">
      document.write ('<p>----<span id="date-time">', new Date().toLocaleString(), '<\/span>----<\/p>')
      if (document.getElementById) onload = function () {
    setInterval ("document.getElementById ('date-time').firstChild.data = new Date().toLocaleString()", 50)
      }
      </script>
    </div>
    <div id="section3">
      <div style="position: absolute; bottom: 5px">
        <i>RG</i>
      </div>
    </div>
    <footer>
      <p><i>Created 26 May 2017</i></p>
    </footer>
  </center>
  </body>
</html>

В настоящее время я пытаюсь открыть файл HTML, используя среду Ubuntu 14.04 и используя wget для получения links2, а затем использую xdg-open для открытия файла html. Но я не получаю страницу. docker run... просто ничего не делает. Нет ошибок, но нет и веб-страницы. Это мое Dockerfile:

FROM ubuntu:14.04

WORKDIR /app

ADD . /app

USER root

RUN apt-get update

RUN apt-get install --no-install-recommends xdg-utils

RUN apt-get install -y --no-install-recommends links2

RUN xdg-open datetime.html

Есть ли альтернативы или правильные решения?

2 ответа

Решение

Вам нужен сервис для предоставления HTML (apache или nginx). Вы можете просто запустить $ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx, где some/content ссылки на ваш HTML-файл. Вот ссылка на официальный докер Nginx: https://hub.docker.com/_/nginx/

Проверьте ваш ip докера с:

docker-machine ip

Это даст, например: 192.168.99.100 Когда ваш контейнер будет работать, то по заданному IP вы можете проверить результат (например, http://192.168.99.100/). Поместите файл index.html в ту же папку, где находится ваш файл Dockerfile. Ваш Dockerfile может выглядеть так:

FROM ubuntu:14.04

COPY index.html /var/www/html/

Когда файлы будут готовы, перейдите в их папку и запустите:

docker build -t my_html_file .
docker run -p 80:80 my_html_file

И посетите http://192.168.99.100/

Другие вопросы по тегам