devwiki:docker

Docker the Tool of build-run-delivery

  • Case study: when building pipeline, if everyone is on same team and on same page, it is easy to build one system for all,
    • use same configure tool to auto configure each user setting
    • use shared network drive to run same app
    • use centralized library to run all tools
  • bad situation: when there is more than 1 team working on more than 1 type of projects
    • when configure need to different to fit different team need
    • and when configure need to be switched when switching between projects due to nature of code dependency and nature of compability
  • not all languages is version back compatible
    • Python 2 and Python 3, Qt4 and Qt5 are already quite compatible in some way with some standard coding stlye to fit 2×2 combination
    • but in web development, some library change dramatically to improve efficiency and so are some game projects required some old assets to maintain.
    • so more and more situations happen in real life in a less standardized and diversed task-oriented world.
    • so Docker is the solution to let use pack versions of thing is a container to ship a all-in-one package like XAMPP (apache,sql,php ready to run pack), and much more than it (which allows multi-version run at same time)
  • disadvantage of container
    • duplicate of same things may happen in so many containers
    • sacrifice a bit of disk space for easy install and easy remove like portable app
  • ideal of “Run app in isolation”
    • easy to build a app and put on ipad and give to your client, since that is all in one (hardware and software)
    • to cut cost, you can put app in a virtual machine, that virtual machine is about the app (like cloud computing instance)
    • virtual machine is slow because each app is bring with a huge Operation System and hangs on memory and CPU all the time.
    • Container is a cheap lite pack “virtual machine” that use main operation system and run like a app wrapper - a app run inside a app.
    • finally, windows supports running Win+Linux container, linux support linux container, mac use VM to run linux container

Get Start with Docker

ref: https://www.youtube.com/watch?v=pTFZFxd4hOI

  • install : https://www.docker.com/products/docker-desktop/ (free for less than 250 people company)
  • once install and restart, run Docker Desktop with admin rights (important)
    • most likely, your “Docker Desktop starting” will take a bit time, then pop error about WSL 2 installation is incomplete
    • click the link to install latest linux core for windows. (wsl_update_x64.msi)
    • then restart pc, run docker with admin right again
    • you should see “Get started with Docker in a few steps”, means ok
    • go through docker first tutorial to get started
  • you should be able to run cmd with admin right
    docker version
  • devwiki/docker.txt
  • Last modified: 2022/09/13 08:34
  • by ying