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

相关文章
相关标签/搜索