# Cannot connect to Docker container in build environment

**URL:** <https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607>\
**Category:** Build Environment\
**Tags:** docker\
**Created:** [December 6, 2017, 3:01pm UTC](https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607 "2017-12-06T15:01:46Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![aknuds1](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/aknuds1/32/2880_2.png) [@aknuds1](https://discuss.circleci.com/u/aknuds1)\
**Post date:** [December 6, 2017, 3:01pm UTC](https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607/1 "2017-12-06T15:01:46Z")

</div>

I have a CircleCI job that first builds a Docker container image and then tests it by launching a corresponding container, and sending HTTP requests to it. However, it’s impossible to connect to the container on the published port. The connection is simply refused, and I can’t tell why. The same workflow works locally. Does anyone know why it doesn’t work to connect to a Docker container in a CircleCI job?

My CircleCI config looks like this:

```auto
version: 2
jobs:
  build:
    docker:
    - image: aknudsen/docker-with-node-python
    working_directory: ~/build
    steps:
    - checkout
    - setup_remote_docker:
        version: 17.10.0-ce
    - run:
        name: Build Docker image
        command: |
          docker build -t quay.io/socialfoodie/web:$CIRCLE_SHA1 .
          docker tag quay.io/socialfoodie/web:$CIRCLE_SHA1 quay.io/socialfoodie/web:latest
    - run:
        name: Test
        command: |
          npm install
          pip3 install -r requirements.txt
          npm test
    - deploy:
        name: Push Docker image
        command: |
          if ["${CIRCLE_BRANCH}" == "release"]; then
            docker login -u $QUAY_USER -p $QUAY_PASSWORD quay.io
            docker push quay.io/socialfoodie/web:$CIRCLE_SHA1
            docker push quay.io/socialfoodie/web:latest
          fi

```

---

<div class="post-metadata">

**Author:** ![aknuds1](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/aknuds1/32/2880_2.png) [@aknuds1](https://discuss.circleci.com/u/aknuds1)\
**Post date:** [December 7, 2017, 8:14am UTC](https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607/2 "2017-12-07T08:14:17Z")

</div>

Nevermind. I found out that with the docker executor it’s not possible to connect to containers, as they are executed remotely. By switching to the machine executor type, I was able to launch containers and connect to them.

---

<div class="post-metadata">

**Author:** ![halfer](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/halfer/32/9083_2.png) [@halfer](https://discuss.circleci.com/u/halfer)\
**Post date:** [December 8, 2017, 1:20am UTC](https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607/3 "2017-12-08T01:20:44Z")

</div>

That’s interesting. I know that you cannot use Docker volumes for this reason, but I have 12 services in a DC arrangement, and they all talk to each other over HTTP perfectly in CircleCI. I am using the Docker and not the Machine executor.

---

<div class="post-metadata">

**Author:** ![aknuds1](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/aknuds1/32/2880_2.png) [@aknuds1](https://discuss.circleci.com/u/aknuds1)\
**Post date:** [December 8, 2017, 8:31am UTC](https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607/4 "2017-12-08T08:31:19Z")

</div>

@halfer Sounds to me as if our use cases are different? What you’re doing should work since, if I understand correctly, your services exist in containers that communicate with each other. My use case is to launch a container and connect to it. This doesn’t work since the launched container is running remotely and as a result its published port won’t be available on localhost.

---

<div class="post-metadata">

**Author:** ![halfer](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/halfer/32/9083_2.png) [@halfer](https://discuss.circleci.com/u/halfer)\
**Post date:** [December 8, 2017, 12:21pm UTC](https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607/5 "2017-12-08T12:21:18Z")

</div>

Ah, I see - you are connecting from the host to a started container. Fair enough. Could you copy the on-host stuff and put that in a container? Docker should then help you get communications working between each one.

> [@aknuds1](#):
>
> your services exist in containers that communicate with each other

Yep, correct!

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [June 18, 2018, 11:40am UTC](https://discuss.circleci.com/t/cannot-connect-to-docker-container-in-build-environment/18607/6 "2018-06-18T11:40:08Z")

</div>

Closed on June 18, 2018, 11:40am UTC


