• 学习Docker的记录


    一、下载 Docker for Windows 安装教程
    参考文档一步一步的来学习文档1文档2
    二、Docker的常用命令介绍

    docker run  -it  --rm   -p 8080:80 --name aspnetcor_sample1 microsoft/dotnet-samples:aspnetapp (运行一个容器)
    -it 进入bash
    -d  不进入bash
    --rm 容器stop(容器停止)后自动删除容器
    -p 指映射端口
    --name 运行的容器名
    Ctrl+P+Q 关闭bash不关闭容器
    docker pull 拉取镜像
    docker images 查看所有镜像
    docker rmi  删除镜像
    docker ps -a 查看所有运行容器
    docker run 创建一个新的容器
    docker rm 删除容器
    docker start 运行容器
    docker stop  停止容器
    docker ps 查看运行容器
    docker ps -a 查看所有运行容器
    docker rm $(docker ps -aq) 删除所有容器
    docker stop $(docker ps -aq) 停止所有容器
    

    三.SWARM 集群搭建

    docker swarm init --advertise-addr 192.168.0.201:2377 --listen-addr 192.168.0.201:2377 leader节点(只能是内网)
     --advertise-addr 是添加这个节点到swarm
     --listen-addr  是节点监听地址
     docker swarm join-token manager 是查看manager的token
     docker swarm join-token worker 是查看worker的token
     解散集群
     排空节点上的集群容器
     docker node update --availability drain node_id
     主动离开集群,让节点处于down状态,才能删除
     docker swarm leave
     删除指定节点 (管理节点上操作)
     docker node rm node_id
     管理节点,解散集群
     docker swarm leave --force
     docker node ls 
    

    四.Docker 网络文档

    docker network create -d overlay network_core //这是创建一个overlay网络network_core,-d 为指定driver为overlay(集群管理节点才能用哦)
    docker的网络模式大致可以分成五种类型:
      bridge:默认是bridge模式网络 使用–net =bridge指定,默认网络驱动程序。当你的应用程序在需要通信的独立容器中运行时,通常会使用桥接网络。
      host:host模式网络 使用–net =host指定,对于独立容器,删除容器和Docker主机之间的网络隔离,并直接使用主机的网络
      none:none模式网络 使用–net =none指定,对于此容器,禁用所有网络
      container:container模式网络 使用–net =container:指定容器名,可以多个容器共用一个网络
      user-defined模式网络:
            overlay:使用--net=overlay,覆盖网络将多个Docker守护程序连接在一起,并使群集服务能够相互通信。
             还可以使用覆盖网络来促进群集服务和独立容器之间的通信,或者在不同Docker守护程序上的两个独立容器之间进行通信
            macvlan:Macvlan网络允许您为容器分配MAC地址,使其显示为网络上的物理设备。Docker守护程序通过其MAC地址将流量路由到容器。
              macvlan 在处理期望直接连接到物理网络的传统应用程序时,使用驱动程序有时是最佳选择,而不是通过Docker主机的网络堆叠进行路由
    

    五. SERVICE 创建

    docker service create --name aspservices -p 10086:80 --network network_core --replicas 5 microsoft/dotnet-samples:aspnetapp(部署service必须创建overlay的network)
    docker service create --name aspservices -p 10086:80 --replicas 5 microsoft/dotnet-samples:aspnetapp(不指定网络,会自动创建overlay)
    create 创建
    --replicas 复制品
    --network 添加网络
    docker service ls 查看所有服务
    docker service ps [服务名] 查看服务下的服务
    

    六. STACK 使用 创建一个docker-compose.yml文件 语法文档

    
    version: "3.7"
    
     
    
    services:
    
      aspnetcor_sample1:
    
        image: microsoft/dotnet-samples:aspnetapp
    
        ports:
    
          - "8080:80"
    
        networks:
    
          - overlay
    
        deploy:
    
          mode: replicated
    
          replicas: 5
    
          endpoint_mode: vip
    
    volumes:
    
      db-data:
    
    networks:
    
      overlay:
    
    
    docker stack deploy -c docker-compose.yml  mystack (创建stack)
    

    七. Dockesfile生成镜像 文档

    FROM :设置镜像源
    WORKDIR:配置工作目录
    COPY . . :复制发布后的bll文件到app目录下
    EXPOSE 8001 :这里的意思是开放容器内的8001端口,并不是代码用这个端口
    ENV :配置系统环境变量,比如程序环境环境等在这里配置(开发、预发、线上环境)
    ENV ASPNETCORE_URLS :这里是配置程序运行端口 如果程序不使用默认的80端口这里一定要设置(程序运行端口)
    ENTRYPOINT:启动入口
    对应.netcore应用程序,设置 ASPNETCORE_ENVIRONMENT 环境变量为自定义的值,就会寻找对应的配置文件,默认不设置会加载appsettings.json
    Docker run -e "ASPNETCORE_ENVIRONMENT=development" myimage
    
    docker build -t mycore:v1.0 . Dockerfile (构建镜像)
    
  • 相关阅读:
    windows 下使用cmake指定visual studio 版本
    python This application failed to stat could not find or load the Qt platform plugin "windows"
    WEP无线网络密码破解
    使用PsExec tool在Session 0下运行程序
    关于远程桌面出现:“由于数据加密错误,这个会话将结束。请重新连接到远程计算机。”
    VB命令行参数分隔, 类似C语言中的main(int argc, char* argv[])
    VS2010/MFC编程入门之四十四:定时器Timer
    MFC之进度条CProgressCtrl
    VC版DoEvents
    文件夹选择对话框
  • 原文地址:https://www.cnblogs.com/SuperDust/p/12331763.html
Copyright © 2020-2023  润新知