Run docker in docker on a dedicated server?












0















I will run docker on a dedicated sever by a service provider. It is not
possible to install docker on this server. Apache, Git and a lot more is
installed. So I try to run docker in a container. I will pull a docker image
from the gitlab registry and run in a sub domain. I wrote a .gitlab-ci.yml. But
I get an error message.



I found this answer:




You can't (*) run Docker inside Docker containers or images. You can't (*)
start background services inside a Dockerfile. As you say, commands like
systemctl and service don't (*) work inside Docker anywhere. And in any case
you can't use any host-system resources, including the host's Docker socket,
from anywhere in a Dockerfile.




How do I solve this problem?



$ 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









share|improve this question

























  • Hi, it works with sudo?

    – Kilian
    Nov 14 '18 at 10:14











  • I tried with sudo, but without success.

    – joerg
    Nov 14 '18 at 10:26













  • Possible duplicate of How to run docker container inside docker (DIND)?

    – George Appleton
    Nov 14 '18 at 11:58











  • The usual answer is to give your container access to the host’s Docker socket -v /var/run/docker.sock:/var/run/docker.sock; given that and appropriate Unix permissions you can launch other containers (and also do whatever you want on the host).

    – David Maze
    Nov 14 '18 at 14:35











  • Hi, could you try attaching DinD as a service?

    – M. Falzone
    Nov 15 '18 at 7:52


















0















I will run docker on a dedicated sever by a service provider. It is not
possible to install docker on this server. Apache, Git and a lot more is
installed. So I try to run docker in a container. I will pull a docker image
from the gitlab registry and run in a sub domain. I wrote a .gitlab-ci.yml. But
I get an error message.



I found this answer:




You can't (*) run Docker inside Docker containers or images. You can't (*)
start background services inside a Dockerfile. As you say, commands like
systemctl and service don't (*) work inside Docker anywhere. And in any case
you can't use any host-system resources, including the host's Docker socket,
from anywhere in a Dockerfile.




How do I solve this problem?



$ 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









share|improve this question

























  • Hi, it works with sudo?

    – Kilian
    Nov 14 '18 at 10:14











  • I tried with sudo, but without success.

    – joerg
    Nov 14 '18 at 10:26













  • Possible duplicate of How to run docker container inside docker (DIND)?

    – George Appleton
    Nov 14 '18 at 11:58











  • The usual answer is to give your container access to the host’s Docker socket -v /var/run/docker.sock:/var/run/docker.sock; given that and appropriate Unix permissions you can launch other containers (and also do whatever you want on the host).

    – David Maze
    Nov 14 '18 at 14:35











  • Hi, could you try attaching DinD as a service?

    – M. Falzone
    Nov 15 '18 at 7:52
















0












0








0








I will run docker on a dedicated sever by a service provider. It is not
possible to install docker on this server. Apache, Git and a lot more is
installed. So I try to run docker in a container. I will pull a docker image
from the gitlab registry and run in a sub domain. I wrote a .gitlab-ci.yml. But
I get an error message.



I found this answer:




You can't (*) run Docker inside Docker containers or images. You can't (*)
start background services inside a Dockerfile. As you say, commands like
systemctl and service don't (*) work inside Docker anywhere. And in any case
you can't use any host-system resources, including the host's Docker socket,
from anywhere in a Dockerfile.




How do I solve this problem?



$ 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









share|improve this question
















I will run docker on a dedicated sever by a service provider. It is not
possible to install docker on this server. Apache, Git and a lot more is
installed. So I try to run docker in a container. I will pull a docker image
from the gitlab registry and run in a sub domain. I wrote a .gitlab-ci.yml. But
I get an error message.



I found this answer:




You can't (*) run Docker inside Docker containers or images. You can't (*)
start background services inside a Dockerfile. As you say, commands like
systemctl and service don't (*) work inside Docker anywhere. And in any case
you can't use any host-system resources, including the host's Docker socket,
from anywhere in a Dockerfile.




How do I solve this problem?



$ 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






docker docker-compose dockerfile gitlab-ci gitlab-ci-runner






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 14:33









David Maze

13.5k31226




13.5k31226










asked Nov 14 '18 at 9:58









joergjoerg

126214




126214













  • Hi, it works with sudo?

    – Kilian
    Nov 14 '18 at 10:14











  • I tried with sudo, but without success.

    – joerg
    Nov 14 '18 at 10:26













  • Possible duplicate of How to run docker container inside docker (DIND)?

    – George Appleton
    Nov 14 '18 at 11:58











  • The usual answer is to give your container access to the host’s Docker socket -v /var/run/docker.sock:/var/run/docker.sock; given that and appropriate Unix permissions you can launch other containers (and also do whatever you want on the host).

    – David Maze
    Nov 14 '18 at 14:35











  • Hi, could you try attaching DinD as a service?

    – M. Falzone
    Nov 15 '18 at 7:52





















  • Hi, it works with sudo?

    – Kilian
    Nov 14 '18 at 10:14











  • I tried with sudo, but without success.

    – joerg
    Nov 14 '18 at 10:26













  • Possible duplicate of How to run docker container inside docker (DIND)?

    – George Appleton
    Nov 14 '18 at 11:58











  • The usual answer is to give your container access to the host’s Docker socket -v /var/run/docker.sock:/var/run/docker.sock; given that and appropriate Unix permissions you can launch other containers (and also do whatever you want on the host).

    – David Maze
    Nov 14 '18 at 14:35











  • Hi, could you try attaching DinD as a service?

    – M. Falzone
    Nov 15 '18 at 7:52



















Hi, it works with sudo?

– Kilian
Nov 14 '18 at 10:14





Hi, it works with sudo?

– Kilian
Nov 14 '18 at 10:14













I tried with sudo, but without success.

– joerg
Nov 14 '18 at 10:26







I tried with sudo, but without success.

– joerg
Nov 14 '18 at 10:26















Possible duplicate of How to run docker container inside docker (DIND)?

– George Appleton
Nov 14 '18 at 11:58





Possible duplicate of How to run docker container inside docker (DIND)?

– George Appleton
Nov 14 '18 at 11:58













The usual answer is to give your container access to the host’s Docker socket -v /var/run/docker.sock:/var/run/docker.sock; given that and appropriate Unix permissions you can launch other containers (and also do whatever you want on the host).

– David Maze
Nov 14 '18 at 14:35





The usual answer is to give your container access to the host’s Docker socket -v /var/run/docker.sock:/var/run/docker.sock; given that and appropriate Unix permissions you can launch other containers (and also do whatever you want on the host).

– David Maze
Nov 14 '18 at 14:35













Hi, could you try attaching DinD as a service?

– M. Falzone
Nov 15 '18 at 7:52







Hi, could you try attaching DinD as a service?

– M. Falzone
Nov 15 '18 at 7:52














2 Answers
2






active

oldest

votes


















0














This .gitlab-ci.yml works for me.



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 ...





share|improve this answer































    0














    The answer that you found.... is a little old. There are options to run systemd in a container and it is also possible to run some systemctl-replacement script.



    However, I am not sure what application you really want to install.






    share|improve this answer























      Your Answer






      StackExchange.ifUsing("editor", function () {
      StackExchange.using("externalEditor", function () {
      StackExchange.using("snippets", function () {
      StackExchange.snippets.init();
      });
      });
      }, "code-snippets");

      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "1"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53297429%2frun-docker-in-docker-on-a-dedicated-server%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      This .gitlab-ci.yml works for me.



      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 ...





      share|improve this answer




























        0














        This .gitlab-ci.yml works for me.



        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 ...





        share|improve this answer


























          0












          0








          0







          This .gitlab-ci.yml works for me.



          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 ...





          share|improve this answer













          This .gitlab-ci.yml works for me.



          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 ...






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 15 '18 at 11:30









          joergjoerg

          126214




          126214

























              0














              The answer that you found.... is a little old. There are options to run systemd in a container and it is also possible to run some systemctl-replacement script.



              However, I am not sure what application you really want to install.






              share|improve this answer




























                0














                The answer that you found.... is a little old. There are options to run systemd in a container and it is also possible to run some systemctl-replacement script.



                However, I am not sure what application you really want to install.






                share|improve this answer


























                  0












                  0








                  0







                  The answer that you found.... is a little old. There are options to run systemd in a container and it is also possible to run some systemctl-replacement script.



                  However, I am not sure what application you really want to install.






                  share|improve this answer













                  The answer that you found.... is a little old. There are options to run systemd in a container and it is also possible to run some systemctl-replacement script.



                  However, I am not sure what application you really want to install.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 16 '18 at 11:40









                  Guido U. DraheimGuido U. Draheim

                  1,259119




                  1,259119






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53297429%2frun-docker-in-docker-on-a-dedicated-server%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Florida Star v. B. J. F.

                      Danny Elfman

                      Lugert, Oklahoma