关于云计算:Docker速学四-编排集群和常见命令总结

8次阅读

共计 2825 个字符,预计需要花费 8 分钟才能阅读完成。

咱们之前介绍了 Docker 学习的根本办法和原理,以及根底三大件:镜像、容器、仓库。还有 Dockerfile 和数据卷等等,如果你对后面的内容还不理解,能够进行再次回顾。

预览:

Docker 小白入门倡议及基本原理介绍

Docker 速学(一)镜像和容器

Docker 速学(二)Dockerfile 和数据卷

Docker 速学(三)网络、用户和过程

这篇内容是 Docker 速学系列的最初一篇内容,对 docker 的编排、集群做了梳理,在文章最初,还总结了一些常见的命令。

让咱们开始明天的内容吧!

编排

编排就是将多个运行的容器串联起来,最常见的编排工具是 Docker Compose。

范例

上面是 OnlyOffice 装置所用的 docker-compose 配置文件:

version: '2'
services:
  onlyoffice-communityserver:
    container_name: onlyoffice-communityserver
    image: onlyoffice/communityserver:latest
    environment:
      - MYSQL_SERVER_HOST="127.0.0.1"
      - MYSQL_SERVER_PORT="3306"
      - MYSQL_SERVER_DB_NAME="onlyoffice"
      - MYSQL_SERVER_USER="onlyoffice"
      - MYSQL_SERVER_PASS="123456"
      - DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-documentserver
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
    volumes:
      - /data/wwwroot/onlyoffice/CommunityServer/logs:/var/log/onlyoffice
      - /data/wwwroot/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data
      - /data/wwwroot/onlyoffice/CommunityServer/DocumentServer/data:/var/www/onlyoffice/DocumentServerData
    ports:
      - '80:80'
      - '443:443'
      - '5222:5222'
       
  onlyoffice-documentserver:
    container_name: onlyoffice-documentserver
    image: onlyoffice/documentserver:latest
    stdin_open: true
    restart: always
    networks:
      - onlyoffice
    ports:
      - '9002:80'
      - '9003:443'
    volumes:
      - /data/wwwroot/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
      - /data/wwwroot/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data

networks:
  onlyoffice:
    driver: 'bridge'

留神:

  1. volumes 设置中的后面局部是宿主机的目录,前面是容器的目录,宿主机的目录无需提前创立
  2. 容器能够很不便的连贯宿主机创立的数据库,下面的 onlyoffice-communityserver 中的 MySQL 连贯配置就是宿主机连贯范例

指令用法

上面重点形容重要指令的用法:

command

command 指令会笼罩 Dockerfile 中定义的 CMD 变量对应的值。

例如:command: bundle exec thin -p 3000

除了反对上述繁多指令之外,也反对多指令的编写。

多指令

version: '3.1'
services:
  db:
    image: postgres
  web:
    build: .
    command:
      - /bin/bash
      - -c
      - |
        python manage.py migrate
        python manage.py runserver 0.0.0.0:8000

    volumes:
      - .:/code
    ports:
      - "8000:8000"
    links:
      - db

以上编排中的 command 相当于 docker run 下的:command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000"

如果多指令波及变量,也能够写成:

    command:
      - /bin/bash
      - -c
      - |
        var=$$(echo 'foo')
        echo $$var # prints foo

entrypoint

entrypoint 用法与 command 相似,也反对多命令。

集群

容器技术不仅仅能够运行在单台宿主机上,它也反对运行在多个主机集群上。有两种类型的风行集群工具:

  • Docker Swarm:Docker 官网出品的容器的集群和调度工具。借助 Swarm,IT 管理员和开发人员能够将 Docker 节点集群建设和治理为单个虚构零碎。
  • Kubernetes(k8s):跨主机集群的主动部署、扩大以及运行应用程序容器的开源平台,这些操作包含部署,调度和节点集群间扩大。

常见命令

上面是应用 Docker 可能须要用到的常见命令

systemctl start/stop docker     运行 / 进行 docker 服务
systemctl enable docker         使 docker 开机自启
docker pull                     从镜像库拉取容器镜像
docker ps                       查看正在运行的容器列表(能够看到容器 ID,所映射的端口号等等)docker ps -a                    查看所有的容器(不论是否运行都能看到)docker start/stop CONTAINER ID  开始 / 进行容器(CONTAINER ID 是容器的 ID)docker rm CONTAINER ID          删除容器
docker stop $(docker ps -aq)    进行所有容器
docker rm $(docker ps -aq)      删除所有容器
docker kill CONTAINER ID        间接敞开容器
docker rmi $(docker images -q) -f 删除所有镜像
docker images  # 查问已下载镜像 

到这里,咱们的 Docker 速学根底入门系列就完结了,在全文里,咱们系统地介绍了 docker 的入门学习办法和应该把握的各种常识和内容,还介绍了一个可视化工具。咱们也制作了相干软件的装置教程以及应用过程中的故障解决问题等文章,以便你的应用。

文章:

Docker 可视化工具——Portainer 全解

可视化 Docker 疾速装置部署教程

置信在学习之后,咱们都有或多或少的播种,而在日后的操作过程中,也欢送大家和小九一起发现问题、提出问题、解决问题!咱们将不断进步!期待你的探讨~

本文由 Websoft9 原创公布,转载请注明出处。

正文完
 0