По какому пути docker и docker-in-docker запускают свои контейнеры? - PullRequest
0 голосов
/ 05 июня 2018

У меня есть докернизированный сервер nginx, который я могу без проблем собирать и запускать на своей локальной машине.Так что теперь я хочу развернуть это с помощью gitlab runner.

Это мой простой dockerfile:

FROM nginx

COPY web /usr/share/nginx/html

EXPOSE 80

Так что, если я собираю и запускаю это на моей локальной машине, это работает,Но у меня есть первый вопрос: где Docker запускает сервер nginx?Потому что, если я смотрю на / usr / share, там ничего нет.

Теперь, если я перенесу свой проект в gitlab, зарегистрируйте бегуна и позвольте ему выполнить следующий файл gitlab-ci:

image: docker:stable

variables:
  DOCKER_DRIVER: overlay2

services:
- docker:dind

before_script:
  - docker info

build:
  script:
    - docker build -t bd24_nginx .
    - docker run -d -p 80:80 bd24_nginx

... работа сделана просто отлично.Нет ошибок в выводе консоли страницы gitlab.Это вывод:

Successfully built 9903dc370422
Successfully tagged bd24_nginx:latest
$ docker run -d -p 80:80 bd24_nginx
b1e24c7cf9af8a43b3c2418d1ca1b90a58e445eb6b0b0ac9cde61f99be8cff7b
Job succeeded

Но если я сейчас зайду по ip-адресу моего сервера, тестовая страница статического html не появится.Так что я подозреваю, что с путями что-то не так?Или я что-то упускаю полностью?Заранее спасибо.

1 Ответ

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

Использование docker означает, что данные копируются в соответствующий контейнер.Когда докер завершит работу, контейнер не сохранит никаких данных.

Вы можете попытаться подключить некоторый каталог хоста к докеру, чтобы иметь постоянное хранилище.См. этот ответ, например .

Надеюсь, это поможет!

...