title: How to publish docker images to docker hub from gitlab-ci
body: <p>Gitlab provides a <code>.gitlab-ci.yml</code> template for building and publishing images to its own registry (click "new file" in one of your project, select <code>.gitlab-ci.yml</code> and <code>docker</code>). The file looks like this and it works out of the box :)</p>
  
  <pre class="lang-yaml prettyprint-override"><code># This file is a template, and might need editing before it works on your project.
  # Official docker image.
  image: docker:latest
  
  services:
    - docker:dind
  
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
  
  build-master:
    stage: build
    script:
      - docker build --pull -t "$CI_REGISTRY_IMAGE" .
      - docker push "$CI_REGISTRY_IMAGE"
    only:
      - master
  
  build:
    stage: build
    script:
      - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
      - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
    except:
      - master
  </code></pre>
  
  <p>But by default, this will publish to gitlab's registry. How can we publish to <a href="https://hub.docker.com/" rel="noreferrer">docker hub</a> instead?</p>