美文网首页
Docker 基本命令( Version:18.09.2,Win

Docker 基本命令( Version:18.09.2,Win

作者: MicoCube | 来源:发表于2019-05-16 16:52 被阅读0次

    安装Docker Engine 社区版本

    在您选择的平台上查找Docker Engine社区版本的安装说明

    创建你的Swarm

    运行docker swarm init以在节点上创建一个群。

    部署您的应用

    运行docker stack deploy -c docker-compose.yml getstartedlab以在云托管群上部署应用程序。

    docker stack deploy -c docker-compose.yml getstartedlab
    
    Creating network getstartedlab_webnet
    Creating service getstartedlab_web
    Creating service getstartedlab_visualizer
    Creating service getstartedlab_redis
    
    

    应用现在正在您的云服务提供商上运行。

    运行一些SWARM命令来验证部署

    您可以使用swarm命令行来浏览和管理swarm。以下是一些现在应该看起来很熟悉的例子:

    • 使用docker node ls到列表中的节点在群。
    [getstartedlab] ~ $ docker node ls
    ID                            HOSTNAME                                      STATUS              AVAILABILITY        MANAGER STATUS
    n2bsny0r2b8fey6013kwnom3m *   ip-172-31-20-217.us-west-1.compute.internal   Ready               Active              Leader
    
    
    • 使用docker service ls列出服务。
    [getstartedlab] ~/sandbox/getstart $ docker service ls
    ID                  NAME                       MODE                REPLICAS            IMAGE                             PORTS
    ioipby1vcxzm        getstartedlab_redis        replicated          0/1                 redis:latest                      *:6379->6379/tcp
    u5cxv7ppv5o0        getstartedlab_visualizer   replicated          0/1                 dockersamples/visualizer:stable   *:8080->8080/tcp
    vy7n2piyqrtr        getstartedlab_web          replicated          5/5                 sam/getstarted:part6    *:80->80/tcp
    
    
    • 使用docker service ps <service>查看任务的服务。
    [getstartedlab] ~/sandbox/getstart $ docker service ps vy7n2piyqrtr
    ID                  NAME                  IMAGE                            NODE                                          DESIRED STATE       CURRENT STATE            ERROR               PORTS
    qrcd4a9lvjel        getstartedlab_web.1   sam/getstarted:part6   ip-172-31-20-217.us-west-1.compute.internal   Running             Running 20 seconds ago                       
    sknya8t4m51u        getstartedlab_web.2   sam/getstarted:part6   ip-172-31-20-217.us-west-1.compute.internal   Running             Running 17 seconds ago                       
    ia730lfnrslg        getstartedlab_web.3   sam/getstarted:part6   ip-172-31-20-217.us-west-1.compute.internal   Running             Running 21 seconds ago                       
    1edaa97h9u4k        getstartedlab_web.4   sam/getstarted:part6   ip-172-31-20-217.us-west-1.compute.internal   Running             Running 21 seconds ago                       
    uh64ez6ahuew        getstartedlab_web.5   sam/getstarted:part6   ip-172-31-20-217.us-west-1.compute.internal   Running             Running 22 seconds ago        
    
    

    在云服务提供商机器上打开服务端口

    此时,您的应用程序将作为swarm部署在云提供程序服务器上,正如您刚刚运行的docker命令所查看的那样。但是,您仍需要在云服务器上打开端口,以便:

    • 如果使用许多节点,则允许redis服务和web服务之间的通信

    • 允许web服务的入站流量分发到工作节点上,以便可以从Web浏览器访问Hello World和Visualizer。

    • 开放ssh的22端口(可能您的云服务提供商已经提前给你设置好了)

    这些是您需要为每个服务公开的端口:

    服务 类型 协议 港口
    web HTTP TCP 80
    visualizer HTTP TCP 8080
    redis TCP TCP 6379

    执行此操作的方法因您的云提供商而异。

    这里我们使用Amazon Web Services(AWS)作为示例。

    redis服务如何持久化数据呢?

    要使redis服务正常运行,您需要用ssh进入swarm管理器正在运行的云服务器,运行之前在/home/docker/下创建data/目录,再执行docker stack deploy。另一种选择是在docker-stack.yml文件中将数据路径更改为manager服务器上预先存在的路径。此示例不包括此步骤,因此web服务显示redis服务未启动。

    迭代和清理

    • 通过更改docker-compose.yml文件来扩展应用程序,并使用docker stack deploy命令即时重新部署。

    • 通过编辑代码,然后重建并推送新图像来更改应用程序行为。(为此,请按照您之前用于构建应用程序发布图像的相同步骤)。

    • 你可以拆掉堆栈docker stack rm。例如:

      docker stack rm getstartedlab
      
      

    与您在本地Docker机器VM上运行swarm的情况不同,无论您是否关闭你的本地主机,您的swarm及其上部署的任何应用程序都将继续在云服务器上运行。

    相关文章

      网友评论

          本文标题:Docker 基本命令( Version:18.09.2,Win

          本文链接:https://www.haomeiwen.com/subject/ocibaqtx.html