Docker学习

相关命令:

docker build -t imagename .            # 使用此.目录的 Dockerfile 创建镜像

docker tag <image> username/repository:tag            # 标记 <image> 以上传到镜像库

docker push username/repository:tag            # 将已标记的镜像上传到镜像库

服务与docker-compose.yml文件:

使用 Docker 平台定义、运行和扩展服务 – 只需编写一个 docker-compose.yml 文件即可。

docker-compose.yml 文件是一个 YAML 文件,用于定义 Docker 容器在生产中的行为方式。

version:"3"
services:
  web:
    # 将 username/repo:tag 替换为您的名称和镜像详细信息
    image: username/repository:tag
    deploy:
      replicas:5
      resources:
        limits:
          cpus:"0.1"
          memory:50M
      restart_policy:
        condition: on-failure
    ports:
      - "80:80"
    networks:
      - webnet
networks:
  webnet:
此 docker-compose.yml 文件会告诉 Docker 执行以下操作:
· 从镜像库中拉取我们在步骤 2 中上传的镜像。
· 将该镜像的五个实例作为服务 web 运行,并将每个实例限制为最多使用 10% 的 CPU(在所有核心中)以及 50MB RAM。
· 如果某个容器发生故障,立即重启容器。
· 将主机上的端口 80 映射到 web 的端口 80。
· 指示 web 容器通过负载均衡的网络 webnet 共享端口 80。(在内部,容器自身将在临时端口发布到 web 的端口 80。)

· 使用默认设置定义 webnet 网络(此为负载均衡的 overlay 网络)。

PS:docker-compose.yml有严格的缩进限制,冒号“:”后必须接空格!

需要先运行以下命令,然后才能使用 docker stack deploy 命令:

docker swarm init

现在,运行此命令。必须为应用指定一个名称。在此处该名称设置为“getstartedlab”:

docker stack deploy -c docker-compose.yml getstartedlab

查看刚才启动的五个容器的列表:

docker stack ps getstartedlab
扩展应用

可以通过在 docker-compose.yml 中更改 replicas 值,保存更改并重新运行 docker stack deploy 命令来扩展应用:

docker stack deploy -c docker-compose.yml getstartedlab
Docker 将执行原地更新,而无需先清除技术栈或终止任何容器。

现在,重新运行 docker stack ps 命令以查看经过重新配置的已部署实例。例如,如果扩展了从节点,将有更多处于运行状态的容器。

清除应用和 swarm

使用 docker stack rm 清除应用:

docker stack rm getstartedlab
这将删除应用,但我们的单节点 swarm 仍处于正常运行状态(如 docker node ls 所示)。使用 docker swarm leave --force清除 swarm。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值