Запустите образ Docker на другом хосте - PullRequest
0 голосов
/ 13 июня 2018

Можно ли запустить образ докера на другом хосте, кроме localhost ?

Порты 80 и 443 всегда заняты другими приложениями, поэтому мне было интересно, возможно ли этозапустить его, например, 192.168.0.100, а затем настроить файл /etc/hosts, чтобы назначить имя для этого IP-адреса.

Я пытался настроить параметр extra_hosts, но я неуверен, если это предназначено для этого.В любом случае, мне не удалось его настроить, так как была проблема с Value should be a mapping, not an array.

Полагаю, стоит упомянуть, что я использую docker-compose для macOS, чтобы запустить все.Заранее спасибо.

docker-compose.yaml

version: "2"

services:
  php:
    build: ./php
    volumes:
      - ../develog.org:/usr/share/nginx/html
  depends_on:
    - memcached

nginx:
  build: ./nginx
  ports:
    - 4001:80
    - 4002:443
  volumes_from:
    - php:ro
  depends_on:
    - php

memcached:
    image: memcached:alpine

networks:
  default:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 172.1.0.0/16

Конфигурация nginx

map $scheme $ssl_request {
  https   "https";
}
server {
  # support http and ipv6
  listen 80 default_server;
  listen [::]:80 default_server ipv6only=on;

  # support https and ipv6
  listen 443 default_server ssl;
  listen [::]:443 ipv6only=on default_server ssl;

  # path to web directory
  root /web/;
  index index.html index.htm;

  # domain or subdomain
  server_name localhost;

  include self-signed.conf;
  include ssl-params.conf;
}

1 Ответ

0 голосов
/ 13 июня 2018

Почему бы не использовать другой порт при запуске вашего образа?(если у вас нет для использования порта 80/443)

Так, например, если вы используете образ веб-сервера, такой как Apache httpd, который обычно работает на порту 80, используйте:

docker run -p 127.0.0.1:8080:80/tcp httpd

Тогда вы можете просто использовать порт 8080 на локальном хосте.

Для docker-compose добавьте раздел портов в файл docker-compose.yaml.Например,

image: <image>
ports:
- "8080:80"

Фактические порты / образы будут зависеть от того, какое изображение вы используете.

Подробнее см. https://docs.docker.com/compose/compose-file/#ports.

...