Запустить Docker в Docker на выделенном сервере? - PullRequest
0 голосов
/ 14 ноября 2018

Я буду запускать Docker на выделенном сервере поставщиком услуг. Это не можно установить докер на этот сервер. Apache, Git и многое другое установлены. Поэтому я пытаюсь запустить докер в контейнере. Я потяну изображение докера из реестра Gitlab и запустить в поддомене. Я написал .gitlab-ci.yml. Но Я получаю сообщение об ошибке.

Я нашел этот ответ :

Вы не можете (*) запускать Docker внутри контейнеров или изображений Docker. Вы не можете (*) запускать фоновые службы внутри Dockerfile. Как вы говорите, такие команды, как systemctl и service нигде не работают (*) внутри Docker. И в любом случае вы не можете использовать какие-либо ресурсы хост-системы, в том числе сокет Docker хоста, из любой точки Dockerfile.

Как мне решить эту проблему?

$ sudo docker run hello-world
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.
ERROR: Job failed: exit code 1

.gitlab-ci.yml

image: ubuntu:latest

before_script:
  - apt-get update
  - apt-get install -y apt-transport-https ca-certificates curl software-properties-common

  - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add
  - apt-key fingerprint 0EBFCD88
  - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

stages:
    - test

test:
  stage: test
  script:
    - apt-get update
    - apt-cache search docker-ce
    - apt-get install -y docker-ce
    - docker run -d hello-world

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Ответ, который вы нашли .... немного стар.Есть опции для запуска systemd в контейнере, а также есть возможность запустить сценарий systemctl-replace * .

Однако я не уверен, какое приложение вы действительно хотите установить.

0 голосов
/ 15 ноября 2018

Этот .gitlab-ci.yml работает для меня.

image: ubuntu:latest

services:
  - docker:dind

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_HOST: tcp://docker:2375/

before_script:
  - apt-get update
  - apt-get install -y apt-transport-https ca-certificates curl software-properties-common
  - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add
  - apt-key fingerprint 0EBFCD88
  - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  - apt-get update

stages:
    - test

test:
  stage: test
  script:
    - apt-get install -y docker-ce
    - docker info
    - docker pull ...
    - docker run -p 8000:8000 -d --name ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...