I have installed Docker Desktop. hello-docker works fine from my cmd, but I can't configure Docker in my GoLand IDE, I get the following error:
Cannot connect to the docker daemon at npipe:////./pipe/docker_engine. Is the docker daemon running?
Honestly, I don't know what are local path and vm path parameters, but I can't even google something relevant about these parameters.
If I ignore this error my images just don't build in the IDE. Can somebody help with that?
I checked my Docker in cmd, works fine, Docker Desktop works too. While trying to configure, Docker Desktop is launched for sure.
Related
In My mac, I have rancher desktop installed. I can run docker commands from terminal without any issue.
But however, Junit test container is complaining saying Couldn't find a valid docker environment.
Can you pls help?
I'm really new to docker. I have installed docker on my windows 10 laptop.
Then I started docker service. Please refer below screenshots.
However it shows docker running icon of docker shows it is false.
This is out put I got in power shell opened as Admin mode.
Please support me to bring to docker working status.
I am trying to get started with docker but for some reason, it does not start the image and just hangs. I downloaded the hello world image from docker hub. My OS is windows 10 64bit. I dont know where to find any docker logs. I am using windows containers. Is there something I am missing?
I tried running the same commands in powershell and it just hangs.
I want to use windows containers as you can see the setting below is switch to linux
Right now I am setting up an application that has a deployment based upon docker images.
I use gitlab ci to:
Test each service
Build each service
Dockerize each image (create docker container)
Run integration tests (start docker compose that starts all services on special ports, run integration tests)
Stop prod images and run new images
I did this for each service, but I ran into an issue.
When I start my docker container for integration tests then it is setup within a gitlab ci task. For each task a docker based runner is used. I also mount my host docker socket to be able to use docker in docker.
So my gradle docker image is started by the gitlab runner. Then docker will be installed and all images will be started using docker compose.
One microservice listens to port 10004. Within the docker compose file there is a 11004:10004 port mapping.
My integration tests try to connect to port 11004. But this does not work right now.
When I attach to the image that run docker compose while it tries to execute the integration test then I am not able to do it manually by calling
wget ip: port
I just get the message connected and waiting for response. Either my tests can connect successfully. My service does not log any message about a new connection.
When I execute this wget command within my host shell then it works.
It's a public ip and within my container I can also connect to other ports using telnet and wget. Just one port of one service is broken when I try to connect from my docker in docker instance.
When I do not use docker compose then it works. Docker compose seems to setup a special default network that does something weird.
Setting network to host also works...
So did anyone also make such an experience when using docker compose?
The same setup works flawless in docker for mac, but my server runs on Debian 8.
My solution for now is to use a shell runner to avoid docker in docker issues. It works there as well.
So docker in docker combined with docker compose seems to have an ugly bug.
I'm writing while I am sitting in the subway but I hope describing my issue is also sufficient to talk about experiences. I don't think we need some sourcecode to find bad configurations because it works without docker in docker and on Mac.
I figured out that docker in docker has still some weird behaviors. I fixed my issue by adding a new gitlab ci runner that is a shell runner. Therefore docker-compose is run on my host and everything works flawless.
I can reuse the same runner for starting docker images in production as I do for integration testing. So the easy fix has another benefit for me.
The result is a best practice to avoid pitfalls:
Only use docker in docker when there is a real need.
For example to make sure fast io communication between your host docker image and your docker image of interest.
Have fun using docker (in docker (in docker)) :]
I'm trying to do something fairly non-standard, so I'm not sure how successful I'm going to be.
I've installed "Docker for Windows", and I'm able to use it fine from PowerShell.
I would like to be able to use a proper Linux environment though, so I've installed the new Ubuntu Bash prompt for Windows 10.
I've successfully built the latest Docker client in Ubuntu/Bash. However when I run "docker ps", I get:
Cannot connect to the Docker daemon. Is the Docker daemon running on this host?
I had hoped that it might just work.
Is it possible to connect to a Docker daemon running in Windows from Ubuntu/Bash?
I figured it out. It was surprisingly simple. I just had to set the following...
export DOCKER_HOST=tcp://127.0.0.1:2375
This is actually a really cool setup.
A very fast, efficient Docker engine running in a type 2 hypervisor, and a proper Ubuntu-based development environment. Nice :-)
Notice: as #BSalita mentioned in the comment, the Docker service must be running with "Expose daemon on tcp://localhost:2375 without TLS" enabled, which can be found in the general section in Docker Settings (right click on the system tray icon then "Settings..."). This option is not checked by default.