High Level Architecture for Docker Based Project

I’m setting up a new project, and want to maximize use of Docker. This project will consist of a number of microservices and APIs built primarily on node.js, mongodb and redis. I’ll have a public website and several mobile apps. I’ll be running this on Google Cloud Platform using the kubernetes-based container engine. One of the first things I plan to do is set up a Jenkins CI/CD service for dev, test and production. I want to set this whole thing up so the only prerequisite for a developer machine is to install Docker and an editor (I could put the editor in a container, but that doesn’t seem to add much value). I want developers to be able to run everything in local containers when they are developing, then deploy this to the dev environment for integration, deploy to test for testing and of course eventually to prod.

I want to architect the infrastructure correctly, but of course there’s a lot I don’t know yet so I’m sure it will be an iterative learning process.

I will have lots of questions (and problems I’m sure) about best practices and technical issues setting this up as I go. The question I have now is sort of broad- how the various pieces of docker - docker machine, compose, etc. will interact on the local machine and with kubernetes on GCP to bring this together.

I know this is very broad, and my question I’m sure reflects some ignorance at the present. So if anyone has any insight that can illuminate at a high level how this should come together, it will certainly speed up my learning curve and will be much appreciated.