Docker, a Linux container that is becoming increasingly popular with developers for deploying apps to a cloud infrastructure. Docker allows application data to sync with the OS running on the cloud infrastructure. That means a developer can work directly from their desktop environment and use Docker to automatically sync updates.
Suppose a traditional software developer which follows the below steps as the development process.
Docker tries to tackle this. Comparing with a source code repository system (SVN/Git) which manages the source code, Docker manage the complete software deployment (i.e. source code, configuration) as a "Container". This ensures every developer test their code in a developer environment exact similar to the production environment.
When it comes to maintaing the configuration of components with in the Container, it follows a JSON representation as follows.
Suppose a traditional software developer which follows the below steps as the development process.
- Checkout a remote SVN/Git repository to the local file system
- Improve the code in the local repository
- Test the code in local repository
- Push the modifications back to the remote repository, so others can update those modifications
Docker tries to tackle this. Comparing with a source code repository system (SVN/Git) which manages the source code, Docker manage the complete software deployment (i.e. source code, configuration) as a "Container". This ensures every developer test their code in a developer environment exact similar to the production environment.
When it comes to maintaing the configuration of components with in the Container, it follows a JSON representation as follows.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"ID": "efefdc74a1d5900d7d7a74740e5261c09f5f42b6dae58ded6a1fde1cde7f4ac5", | |
"Created": "2013-07-30T00:54:12.417119736Z", | |
"Path": "ping", | |
"Args": [ | |
"www.google.com" | |
], | |
"Config": { | |
"Hostname": "efefdc74a1d5", | |
"User": "", | |
"Memory": 0, | |
"MemorySwap": 0, | |
"CpuShares": 0, | |
"AttachStdin": false, | |
"AttachStdout": true, | |
"AttachStderr": true, | |
"PortSpecs": null, | |
"Tty": false, | |
"OpenStdin": false, | |
"StdinOnce": false, | |
"Env": null, | |
"Cmd": [ | |
"ping", | |
"www.google.com" | |
], | |
"Dns": null, | |
"Image": "learn/ping", | |
"Volumes": null, | |
"VolumesFrom": "", | |
"Entrypoint": null | |
}, | |
"State": { | |
"Running": true, | |
"Pid": 22249, | |
"ExitCode": 0, | |
"StartedAt": "2013-07-30T00:54:12.424817715Z", | |
"Ghost": false | |
}, | |
"Image": "a1dbb48ce764c6651f5af98b46ed052a5f751233d731b645a6c57f91a4cb7158", | |
"NetworkSettings": { | |
"IPAddress": "172.16.42.6", | |
"IPPrefixLen": 24, | |
"Gateway": "172.16.42.1", | |
"Bridge": "docker0", | |
"PortMapping": { | |
"Tcp": {}, | |
"Udp": {} | |
} | |
}, | |
"SysInitPath": "/usr/bin/docker", | |
"ResolvConfPath": "/etc/resolv.conf", | |
"Volumes": {}, | |
"VolumesRW": {} | |
} |