How to Run a Docker Container on Your Local Machine
This quick walkthrough will show you how to dockerize and run an Angular2 app in a container on your local machine, with frequently used Docker commands.
Join the DZone community and get the full member experience.
Join For FreeI have been working on a hobby project, a nutrition tracking app, to practice the latest continuous integration tools. This post is about dockerizing an angular2 app on your local machine. I skipped the basic definitions about docker, containers, and ci for the sake of simplicity.
Docker Commands
Frequently used docker commands:
Build Docker image:
docker build -t image-name
Run Docker image:
docker run -p 80:80 -it image-name
Stop all docker containers:
docker stop $(docker ps -a -q)
Remove all docker containers:
docker rm $(docker ps -a -q)
Remove all docker images:
docker rmi $(docker images -q)
Port bindings of a specific container :
docker inspect [container-id]
Dockerfile
A dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image. Here's a simple dockerfile that copies the "dist" folder to /usr/share/nginx/html:
from nginx
copy dist /usr/share/nginx/html
expose 80
Project Structure
The dockerfile should be located in the root of the project. Here is an example from my project:
How To Run the Docker Container on Your Local Machine
Build
docker build -t angular-webpack .
Run
docker run -p 9000:80 -t angular-webpack
This will create a container with the image "angular-webpack" and bind the container’s port 80 to the host machine’s port 9000. After the "docker run -p 9000:80 -it angular-webpack" command, the docker container runs on a linux virtual machine. So we can't run docker natively on windows or a mac. the following properties must be set:
set environment properties
set userprofile = c:\users\xxx --> set your user proile
set docker_cert_path=%userprofile%\.docker\machine\machines\default
set docker_host=tcp://192.168.99.100 --> find this ip in docker quick start terminal
set docker_machine_name=default
set docker_tls_verify=1
Test: http://192.168.99.100:9000/index.html
For Troubleshooting: https://stackoverflow.com/questions/41208782/docker-localhost-process-not-working-on-windows
Opinions expressed by DZone contributors are their own.
Comments