Docker的使用心得

花了一個晚上和一個上午的時間學習了一下Docker,Docker的文檔算是技術文檔中寫的最好的吧,有介紹,有操做,還有錄像和回顧。node

https://docs.docker.com/get-started/web

 

下載Docker Toolbox(Docker Desktop for Windows Requires Microsoft Windows 10 Professional or Enterprise 64-bit.)redis

https://docs.docker.com/toolbox/overview/docker

 

Docker中各個概念的關係:app

Toolbox啓動以後,會在本機啓動一個Node,拉取boot2docker的image,run一個container。ssh

Docker的集羣化部署最終落實在學習

docker stack deploy -c docker-compose.yml getstartedlabui

能夠看到getstartedlab爲stack名,觀察docker-compose.yml,該stack定義了多了service,service的名稱爲 <stack名>_<service名>,如spa

getstartedlab_web, getstartedlab_visualizer, getstartedlab_redis等:rest

每一個service中定義了image的來源,部署的信息等。因爲docker stack deploy指令在一個node中執行,服務會被部署在當前的node中(swarm的話,在Node Manager中執行docker stack deploy指令,服務會被部署在swarm的全部node中)。

version: "3"
services:
  web:
    # replace username/repo:tag with your name and image details
    image: mozaiquan/get-started:part2
    deploy:
      replicas: 5
      restart_policy:
        condition: on-failure
      resources:
        limits:
          cpus: "0.1"
          memory: 50M
    # 端口映射 宿主機端口:虛擬機端口
    ports:
      - "80:80"
    networks:
      - webnet
  visualizer:
    image: dockersamples/visualizer:stable
    ports:
      - "8081:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    deploy:
      placement:
        constraints: [node.role == manager]
    networks:
      - webnet
  redis:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - "/home/docker/data:/data"
    deploy:
      placement:
        constraints: [node.role == manager]
    command: redis-server --appendonly yes
    networks:
      - webnet
networks:
  webnet:

一些經常使用指令:

 docker stack ls
 docker stack ps getstartedlab
 docker service ls
 docker service ps getstartedlab_web
 docker-machine ls
 docker-machine env
 docker-machine ssh myvm1 "docker node ls"
 docker-machine env myvm1

相關文章
相關標籤/搜索