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。
阅读更多
文章标签: Docker Study
个人分类: Docker
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭